[jboss-user] [JBoss jBPM] - SOAP Fault Exception - BPEL ATM Example
KVAK_TNT
do-not-reply at jboss.com
Tue Aug 22 11:52:55 EDT 2006
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
More information about the jboss-user
mailing list