2012-04-18 14 views
1

Netbeans 7.1でglassfish 3.1.1上で正常に動作しているWebサービスを作成しました。今度は、私のサービスアプリケーションをJboss 4.2.3 GA-JDK6に移動しなければなりません。 JbossにWebサービスをデプロイする際に問題はありませんが、Webサービスを呼び出すと例外が発生します。 - "" SOAPMessageクラスのすべてのサブクラスでsetPropertyをオーバーライドする必要があります。この問題を解決するために、jboss-native-saaj.jarをJBOSS_HOME/lib/endorsedに追加しました。問題を解決し、サービスが呼び出されましたが、応答を返すことができなかったが、それは新しい例外をもたらした: -JbossでWebサービスを呼び出すときのクラスキャスト例外4.2.3 GA

Caused by: java.lang.ClassCastException: com.sun.xml.messaging.saaj.soap.ver1_1.Envelope1_1Impl cannot be cast to org.jboss.ws.core.soap.SOAPElementImpl 
at org.jboss.ws.core.soap.SOAPEnvelopeImpl.<init>(SOAPEnvelopeImpl.java:60) 
at org.jboss.ws.core.soap.EnvelopeBuilderDOM.build(EnvelopeBuilderDOM.java:124) 
at org.jboss.ws.core.soap.EnvelopeBuilderDOM.build(EnvelopeBuilderDOM.java:96) 
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:280) 
at org.jboss.ws.core.soap.SOAPMessageUnMarshallerHTTP.read(SOAPMessageUnMarshallerHTTP.java:84) 
at org.jboss.remoting.transport.http.HTTPClientInvoker.readResponse(HTTPClientInvoker.java:518) 
at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:307) 
... 54 more 

また、私は私が実際にWebサービス内からWebサービスを呼び出すてることをお伝えしたいと思います。 同じことを行うための資料や解決策がないので、この点で助けてください。以前に発生したエラーの完全なスタックトレースを追加するアドバンス

ありがとう: -

javax.xml.ws.WebServiceException: java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage 
at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:404) 
at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:314) 
at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:172) 
at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:152) 
at $Proxy183.authenticateUser(Unknown Source) 
at com.liaison.soi.sts.usermgmt.service.impl.UserManagementServiceImpl.authenticateUser(UserManagementServiceImpl.java:46) 
at com.liaison.soi.sts.usermgmt.service.impl.UserManagementServiceImpl.authenticateUser(UserManagementServiceImpl.java:25) 
at com.liaison.soi.sts.auth.AuthenticationHandler.validate(AuthenticationHandler.java:24) 
at com.sun.xml.wss.impl.callback.PasswordValidationCallback.getResult(PasswordValidationCallback.java:80) 
at com.sun.xml.wss.impl.misc.DefaultSecurityEnvironmentImpl.authenticateUser(DefaultSecurityEnvironmentImpl.java:1166) 
at com.sun.xml.ws.security.opt.impl.incoming.UsernameTokenHeader.validate(UsernameTokenHeader.java:160) 
at com.sun.xml.ws.security.opt.impl.incoming.SecurityRecipient.handleSecurityHeader(SecurityRecipient.java:341) 
at com.sun.xml.ws.security.opt.impl.incoming.SecurityRecipient.cacheHeaders(SecurityRecipient.java:275) 
at com.sun.xml.ws.security.opt.impl.incoming.SecurityRecipient.validateMessage(SecurityRecipient.java:225) 
at com.sun.xml.wss.jaxws.impl.SecurityTubeBase.verifyInboundMessage(SecurityTubeBase.java:450) 
at com.sun.xml.wss.jaxws.impl.SecurityServerTube.processRequest(SecurityServerTube.java:295) 
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641) 
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600) 
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585) 
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482) 
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314) 
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608) 
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259) 
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.invokeAsync(ServletAdapter.java:213) 
at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:159) 
at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:194) 
at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:80) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524) 
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 
at java.lang.Thread.run(Thread.java:662) 
Caused by: java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage 
at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:454) 
at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:83) 
at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:171) 
at org.jboss.ws.core.CommonSOAP11Binding.createMessage(CommonSOAP11Binding.java:59) 
at org.jboss.ws.core.CommonSOAPBinding.bindRequestMessage(CommonSOAPBinding.java:158) 
at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:291) 
at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:302) 
+0

SAAJの実装にはJDK自体が付属しているため、この実装ではJBossのものよりも優先されます。通常、SOAPファクトリはライブラリ自体で定義されていますが、あなたの場合は動作しません。私は第1の例外に戻ってそこから問題を解決しようと提案します。おそらく私はいくつかのアイデアを得るだろう 'setProperty'の問題のためのより完全なスタックトレースを表示する場合。 –

+0

こんにちは@dma_k、あなたの迅速な対応に感謝します。私は要求された上記の質問自体に完全なスタックトレースを追加しました。 Sunのメトロフレームワークを使用してサービスを構築したことを伝えたいと思います。私は別のサービスからWebサービスを呼びたいと思っています。 –

答えて

0

私はあなたの問題は、以下であると思います。

実装SOAPMessageImplは、JBoss 3.2.2.GA(チェックhere)までjboss-native-saaj.jarにのみパッケージ化されています。 JBossの最新のバージョンはjbossws-native-core.jarです。だからjboss-native-saaj.jarserver/libs(またはアプリケーションと共にパッケージ)に入れると、クラスの競合が発生します。したがって、ソリューションは、jboss-native-saaj.jarを削除してください。jbossws-native-core.jarは既にそこにあります。

jboss-native-saaj.jarのチェックをMETA-INFにするには、JBoss 4.2.3用にパッケージ化されていますか?梱包の日付は何ですか?これは正しい決定にあなたを連れて行きます。

0

これは簡単に検索することができます。

https://issues.jboss.org/browse/JBWS-1439およびhttps://community.jboss.org/message/618306を参照してください。

これは、Java 6でよく知られている問題です。これは、旧式のjax-ws jarsがバンドルされているためです。

上記の問題に記載されているように、いくつかの瓶を承認されたDirに移動して遊ぶ必要があります。

代替ソリューションは、upgradeJBossWS -3.1.1(最後のものはJBoss AS 4.2.3.GAをサポートしています)です。

関連する問題