lasoty Napisano Maj 21, 2015 Zgłoś Udostępnij Napisano Maj 21, 2015 Witam, mam problem z moim WS. Problem jest o tyle trudniejszy do zdiagnozowania, gdyż wcześniej wszystko było OK. Mam sobie metodę webserwisu, której sygnatura wygląda następująco: @WebMethod public abstract ApplicationListResponse getApplicationList(); public class ApplicationListResponse { public AppItem[] ApplicationList; } public class AppItem implements java.io.Serializable { public int ID; public String Name; public String Description; } Przy pomocy Eclipse generuję sobie webservice (RPC/Encoded), a następnie w aplikacji klienckiej tworze również przy pomocy Eclipse klienta do WS. następnie wywołuję metodę WS: private void getAppList() { UpdateManagerProxy ws = new UpdateManagerProxy(); try { ApplicationListResponse resp = ws.getApplicationList(); for (AppItem item : resp.getApplicationList()) { appList.add(new ApplicationListItem(item.getID(), item.getName(), item.getDescription())); } } catch (RemoteException e) { e.printStackTrace(); } } i dostaję poniższy błąd: maj 21, 2015 11:40:52 AM org.apache.axis.client.Call invoke SEVERE: Exception: org.xml.sax.SAXException: Invalid element in pl.kzl.UpdaterWs.Model.ApplicationListResponse - item at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:258) at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384) at org.apache.axis.client.Call.invoke(Call.java:2467) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) at pl.kzl.UpdaterWs.UpdateManagerSoapBindingStub.getApplicationList(UpdateManagerSoapBindingStub.java:438) at pl.kzl.UpdaterWs.UpdateManagerProxy.getApplicationList(UpdateManagerProxy.java:56) at pl.kzl.UpdateManager.View.ApplicationListController.getAppList(ApplicationListController.java:57) at pl.kzl.UpdateManager.View.ApplicationListController.<init>(ApplicationListController.java:51) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:408) at java.lang.Class.newInstance(Class.java:438) at sun.reflect.misc.ReflectUtil.newInstance(ReflectUtil.java:51) at javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:923) at javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:967) at javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:216) at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:740) at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2701) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2521) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2435) at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2403) at pl.kzl.UpdateManager.Main.showApplicationList(Main.java:75) at pl.kzl.UpdateManager.Main.start(Main.java:46) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$153(LauncherImpl.java:821) at com.sun.javafx.application.LauncherImpl$$Lambda$51/1666450827.run(Unknown Source) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$166(PlatformImpl.java:323) at com.sun.javafx.application.PlatformImpl$$Lambda$44/1051754451.run(Unknown Source) at com.sun.javafx.application.PlatformImpl.lambda$null$164(PlatformImpl.java:292) at com.sun.javafx.application.PlatformImpl$$Lambda$47/1170123923.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$165(PlatformImpl.java:291) at com.sun.javafx.application.PlatformImpl$$Lambda$46/1775282465.run(Unknown Source) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$141(WinApplication.java:102) at com.sun.glass.ui.win.WinApplication$$Lambda$37/1109371569.run(Unknown Source) at java.lang.Thread.run(Thread.java:745) AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: org.xml.sax.SAXException: Invalid element in pl.kzl.UpdaterWs.Model.ApplicationListResponse - item faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: Invalid element in pl.kzl.UpdaterWs.Model.ApplicationListResponse - item at org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:258) at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035) at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165) at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141) at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:345) at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384) at org.apache.axis.client.Call.invoke(Call.java:2467) at org.apache.axis.client.Call.invoke(Call.java:2366) at org.apache.axis.client.Call.invoke(Call.java:1812) Niestety nie mam zielonego pojęcia dlaczego nie działa. Proszę o pomoc. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Jin Napisano Maj 24, 2015 Zgłoś Udostępnij Napisano Maj 24, 2015 Komunikacja między klientem a servisem odbywa się przez SOAP, i żeby to jakoś działało to metody (@WebMethod) muszą mieć parametry i typy return kompatybilne z JAXB : http://docs.oracle.com/javaee/5/tutorial/doc/bnazq.html#bnazs . Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.