Hi there!

I have a big problem with the ATM-Example.
All the time I want to start the ATM-GUI or start the JUnit-Tests it fails with 
the following message (bellow the next paragraph)

Now I have found out that this happens not every time and I can sometimes start 
the GUI (but never run through the JUNit Tests).
So I checked the code and followed the lines...
Next point i found out was that It was not possible to connect to the Service 
twice with the same programinstance. If I had disconeccted and tried again to 
connect to the "ATM-Terminal" I get the same error as follows:


  | 20060822 17:32:42:495 DEBUG [Link: 
javax.xml.rpc.soap.SOAPFaultException.<init>(SOAPFaultException.java:91)] - new 
SOAPFaultException 
[code={http://schemas.xmlsoap.org/soap/envelope/}Server,string=The service is 
not in an appropiate state for the requested operation,actor=null,detail=null]
  | 20060822 17:32:42:511 ERROR [Link: 
org.jboss.ws.jaxrpc.CallImpl.invokeInternal(CallImpl.java:713)] - Call 
invocation failed
  | javax.xml.rpc.soap.SOAPFaultException: The service is not in an appropiate 
state for the requested operation
  |     at 
org.jboss.ws.jaxrpc.SOAPFaultExceptionHelper.getSOAPFaultException(SOAPFaultExceptionHelper.java:100)
  |     at 
org.jboss.ws.binding.soap.SOAPBindingProvider.unbindResponseMessage(SOAPBindingProvider.java:505)
  |     at org.jboss.ws.jaxrpc.CallImpl.invokeInternal(CallImpl.java:704)
  |     at org.jboss.ws.jaxrpc.CallImpl.invoke(CallImpl.java:398)
  |     at org.jboss.ws.jaxrpc.CallProxy.invoke(CallProxy.java:164)
  |     at $Proxy2.status(Unknown Source)
  |     at 
org.jbpm.bpel.tutorial.atm.terminal.ConnectAction.actionPerformed(ConnectAction.java:68)
  |     at 
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
  |     at 
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
  |     at 
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
  |     at 
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
  |     at 
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
  |     at java.awt.Component.processMouseEvent(Component.java:5488)
  |     at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
  |     at java.awt.Component.processEvent(Component.java:5253)
  |     at java.awt.Container.processEvent(Container.java:1966)
  |     at java.awt.Component.dispatchEventImpl(Component.java:3955)
  |     at java.awt.Container.dispatchEventImpl(Container.java:2024)
  |     at java.awt.Component.dispatchEvent(Component.java:3803)
  |     at 
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
  |     at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
  |     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
  |     at java.awt.Container.dispatchEventImpl(Container.java:2010)
  |     at java.awt.Window.dispatchEventImpl(Window.java:1774)
  |     at java.awt.Component.dispatchEvent(Component.java:3803)
  |     at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
  |     at 
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
  |     at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
  |     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
  |     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
  |     at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
  | java.rmi.RemoteException: Call invocation failed with code [Server] because 
of: The service is not in an appropiate state for the requested operation; 
nested exception is: 
  |     javax.xml.rpc.soap.SOAPFaultException: The service is not in an 
appropiate state for the requested operation
  |     at org.jboss.ws.jaxrpc.CallImpl.invokeInternal(CallImpl.java:715)
  |     at org.jboss.ws.jaxrpc.CallImpl.invoke(CallImpl.java:398)
  |     at org.jboss.ws.jaxrpc.CallProxy.invoke(CallProxy.java:164)
  |     at $Proxy2.status(Unknown Source)
  |     at 
org.jbpm.bpel.tutorial.atm.terminal.ConnectAction.actionPerformed(ConnectAction.java:68)
  |     at 
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
  |     at 
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
  |     at 
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
  |     at 
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
  |     at 
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
  |     at java.awt.Component.processMouseEvent(Component.java:5488)
  |     at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
  |     at java.awt.Component.processEvent(Component.java:5253)
  |     at java.awt.Container.processEvent(Container.java:1966)
  |     at java.awt.Component.dispatchEventImpl(Component.java:3955)
  |     at java.awt.Container.dispatchEventImpl(Container.java:2024)
  |     at java.awt.Component.dispatchEvent(Component.java:3803)
  |     at 
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
  |     at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
  |     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
  |     at java.awt.Container.dispatchEventImpl(Container.java:2010)
  |     at java.awt.Window.dispatchEventImpl(Window.java:1774)
  |     at java.awt.Component.dispatchEvent(Component.java:3803)
  |     at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
  |     at 
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
  |     at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
  |     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
  |     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
  |     at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
  | Caused by: javax.xml.rpc.soap.SOAPFaultException: The service is not in an 
appropiate state for the requested operation
  |     at 
org.jboss.ws.jaxrpc.SOAPFaultExceptionHelper.getSOAPFaultException(SOAPFaultExceptionHelper.java:100)
  |     at 
org.jboss.ws.binding.soap.SOAPBindingProvider.unbindResponseMessage(SOAPBindingProvider.java:505)
  |     at org.jboss.ws.jaxrpc.CallImpl.invokeInternal(CallImpl.java:704)
  |     ... 28 more
  | 

Now I have found out that there may be a timeoutproblem like at this code here:

ConnectAction.java

  |   public void actionPerformed(ActionEvent event) {
  |     Map context = AtmTerminal.getContext();
  |     AtmPanel atmPanel = (AtmPanel) context.get(AtmTerminal.PANEL);
  |     
  |     InitialContext ctx = null;
  |     try {
  |       ctx = getInitialContext();
  |       // JNDI name of service interface (in application-client.xml)
  |       String serviceRefName = "service/ATM";
  |       // lookup service interface in environment context
  |       AtmFrontEndService service = (AtmFrontEndService) 
ctx.lookup("java:comp/env/" + serviceRefName);
  |       // obtain dynamic proxy for web service port
  |       AtmFrontEnd atmFrontEnd = service.getAtmRelationPort();
  |       context.put(AtmTerminal.FRONT_END, atmFrontEnd);
  |       
  |       // connect to atm service
  |       int ticketNo = atmFrontEnd.connect();
  |       context.put(AtmTerminal.TICKET, new Integer(ticketNo));
  |       
  |       // update atm panel
  |       atmPanel.setMessage("Please log on,\nso we can begin");
  |       atmPanel.clearActions();
  |       atmPanel.addAction(new LogOnAction());
  |       atmPanel.addAction(new DisconnectAction());
  |       atmPanel.setStatus(atmFrontEnd.status(ticketNo).getValue());   
  |     }
  |     catch (Exception e) {
  |       atmPanel.setMessage("Sorry, I am experiencing\ntechnical 
problems.\nPlease use another terminal.");
  |       e.printStackTrace();
  |     }
  |     finally {
  |       if (ctx != null) {
  |         try {
  |           ctx.close();
  |         }
  |         catch (NamingException e) {
  |           e.printStackTrace();
  |         }
  |       }
  |     }
  |   }
  | 

If I add a waitstate - this code works fantastically (in comparision to bevore 
:-) )

  |      // obtain dynamic proxy for web service port
  |       atmFrontEnd = service.getAtmRelationPort();
  |       context.put(AtmTerminal.FRONT_END, atmFrontEnd);
  |       Thread.sleep(1000);   //************** New Code
  | 
  |       // connect to atm service
  |       int ticketNo = atmFrontEnd.connect();
  |       context.put(AtmTerminal.TICKET, new Integer(ticketNo));
  |       Thread.sleep(1000);  //************** New Code
  | 

But this cannot be the real sollution. I have search the Inet (google) and this 
forum but I haven't found anything in comparision to this...
I hope anyone can tell me something about this.
Maybe some timeout settings in SOAP technologie? I have to say that I dont know 
anything about SOAP actually... -p)

By the way: I think the reason why I cannot really run through the JUnit test 
lays exactly at the same point!

Greetings

TNT

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3966739#3966739

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3966739
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to