0

奇妙な問題に直面しており、あなたの助けが必要です。Java コンテナとして oc4j 1013 を使用しています。シンプルな Web サービス「GetDates」を oc4j に正常にデプロイし、その中のメソッドを呼び出してテストしたところ、値が正常に返されました。次に、Web サービスの wsdl を使用して Web サービス プロキシを作成し、jdeveloper からテストしたところ、正常に返されました。最後に、Web アプリケーションを作成しました。通常のサーブレットとその内部で、先ほど行った Web サービス プロキシを使用しました。jdeveloper から実行してテストしたところ、結果が正常に返されました。奇妙なことは、Web サービスの oc4j である外部 oc4j にデプロイすることに決めたとき、サーブレットを呼び出すと、以下の例外が発生することです。

java.lang.NoSuchMethodError: datespackage.runtime.GetDatesWS_getDateHence_ResponseStruct_LiteralSerializer.setSOAPVersion(Loracle/j2ee/ws/common/soap/SOAPVersion;)
at datespackage.runtime.GetDatesWS_getDateHence_ResponseStruct_LiteralSerializer.<init>(GetDatesWS_getDateHence_ResponseStruct_LiteralSerializer.java:37)
at datespackage.runtime.GetDatesService_SerializerRegistry.getRegistry(GetDatesService_SerializerRegistry.java:31)
at datespackage.runtime.GetDatesService_Impl.<init>(GetDatesService_Impl.java:26)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at oracle.j2ee.ws.client.ServiceFactoryImpl.createService(ServiceFactoryImpl.java:92)
at oracle.j2ee.ws.client.ServiceFactoryImpl.loadService(ServiceFactoryImpl.java:121)
at datespackage.GetDatesWSSoapHttpPortClient.<init>(GetDatesWSSoapHttpPortClient.java:22)
at webproject.indexClass.doGet(indexClass.java:27)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:719)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:376)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:870)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:451)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:218)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:119)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at com.evermind[Oracle Containers for J2EE 10g (10.1.3.0.0) ].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:619)

瓶の欠品か何かがありそうな予感がしました。

JDeveloper 1013 と oc4j 1013 を使用しており、JDK 1.5 を使用しています。

4

3 に答える 3

0

メソッドのシグネチャが同じであることを確認し、パッケージ名を確認してください。クライアント クラスとサーバー クラスは同じパッケージを共有する必要があります。

于 2013-04-21T11:28:57.087 に答える
0

長い間調査した結果、Web サービスの呼び出し方法を変更し、RPC Call を使用して Web サービスを呼び出す汎用クライアントを開発しました。それはうまくいきました:)

于 2013-04-22T07:55:15.513 に答える