菜鳥調錯(三)——Jboss與jdk版本號碼不相容導致WebService調用出錯

來源:互聯網
上載者:User

標籤:report   common   dap   sso   comm   ldo   one   lan   tab   

環境:

jdk1.6

Jboss 5.1.0.GA


問題描寫敘述:

EJB公布webserivce已經成功,而且可以成功訪問wsdl檔案;
使用axis1內建的sample/client下的類DynamicInvoker測試,程式報錯。


錯誤資訊:


client:

Exception in thread "main" AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode:  faultString: org.xml.sax.SAXParseException: Premature end of file. faultActor:  faultNode:  faultDetail: {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXParseException: Premature end of file.at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)at javax.xml.parsers.SAXParser.parse(Unknown Source)

server(Jboss)端錯誤資訊:

ERROR [SOAPFaultHelperJAXWS] SOAP request exceptionjava.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessageat javax.xml.soap.SOAPMessage.setProperty(Unknown Source)at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:87)at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:215)at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:193)at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:455)at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:295)at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:205)at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:131)at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:85)at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)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:235)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)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:158)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)at java.lang.Thread.run(Unknown Source)


解決方式:

下載jboss-5.1.0.GA-jdk6。並將JBOSS_HOME\lib\endorsed下的幾個以Jboss開頭的jar包分別拷貝到JAVA_HOME\lib\endorsed 和 JRE_HOME\lib\endorsed檔案夾下。兩個lib檔案夾中可能都沒有endorsed檔案夾(反正我的沒有)。那就自己建立一個。

須要複製的jar包:

jbossws-native-jaxrpc.jar
jbossws-native-jaxws.jar
jbossws-native-jaxws-ext.jar
jbossws-native-saaj.jar


注意:從eclipse啟Jboss須要在jre下放置這些包。從外部啟Jboss須要在jdk下放置上面的jar包。


開始僅僅注意到client報的錯誤,於是依據錯誤資訊就在網上搜尋解決的方法,但是找到的資料千奇百怪,說什麼的都有。後來賈琳一句話提醒了我。他問我Jboss報什麼錯誤,這時我才想起來還有Jboss的事呢。

後來他把他之前遇到類似錯誤的部落格發給我,我依照上面的辦法弄了弄,只是還是發現有點小問題(從外部啟Jboss還是報錯)。後來參考一篇網友的部落格攻克了這個問題。這篇文章非常具體的解說了出現這個錯誤的原因,有興趣的朋友能夠看看。




菜鳥調錯(三)——Jboss與jdk版本號碼不相容導致WebService調用出錯

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.