このウェブサイトは初めてです。このサイトが実際に私が技術的に成長するのを助けるだろうと私の友人から聞いた直後に購読しました。
次の問題が報告されています。
私のアプリケーションは、処理のために5つの外部サービス(Webサービス呼び出し)をヒットする必要があるように開発されています。これらのサービスは、axis2スタブを使用して呼び出されます。
私のアプリケーションは、Glassfishアプリケーションサーバーバージョン2.1にエンタープライズアプリケーションとしてデプロイされています。
処理は正常に進んでいますが、一部のリクエストではWebサービスリクエストが失敗します(つまり、1000リクエストごとに次のエラーで失敗します)。20リクエストが失敗します。
axis2トレースで見つかったエラーログは次のとおりです。
2012-04-19 15:42:10,328 DEBUG org.apache.axiom.om.util.StAXUtils - XMLStreamReader is com.sun.xml.stream.XMLReaderImpl
2012-04-19 15:42:10,326 DEBUG org.apache.axis2.description.ParameterIncludeImpl - ==================
2012-04-19 15:42:10,328 DEBUG org.apache.axis2.description.ParameterIncludeImpl - Parameter add on object org.apache.axis2.description.ParameterIncludeImpl@3ee78dcc
2012-04-19 15:42:10,328 DEBUG org.apache.axis2.description.ParameterIncludeImpl - Key =enableMTOM
2012-04-19 15:42:10,328 DEBUG org.apache.axis2.description.ParameterIncludeImpl - Value =false
2012-04-19 15:42:10,328 DEBUG org.apache.axis2.description.ParameterIncludeImpl - Value Class = java.lang.String
2012-04-19 15:42:10,328 DEBUG org.apache.axis2.description.ParameterIncludeImpl - Value Classloader = null
2012-04-19 15:42:10,328 ERROR webServiceRequestConnector - Exception >>> webServiceRequestConnector.postRequest() >>> Interface Request >>> 3652467 >>> Exception Message is >>>
java.lang.ArrayIndexOutOfBoundsException: -1
at com.sun.xml.stream.xerces.util.NamespaceSupport.popContext(NamespaceSupport.java:223)
at com.sun.xml.stream.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:359)
at com.sun.xml.stream.XMLReaderImpl.setInputSource(XMLReaderImpl.java:207)
at com.sun.xml.stream.ZephyrParserFactory.getXMLStreamReaderImpl(ZephyrParserFactory.java:291)
at com.sun.xml.stream.ZephyrParserFactory.createXMLStreamReader(ZephyrParserFactory.java:173)
at com.sun.xml.stream.ZephyrParserFactory.createXMLStreamReader(ZephyrParserFactory.java:156)
at org.apache.axiom.om.util.StAXUtils$2.run(StAXUtils.java:137)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axiom.om.util.StAXUtils.createXMLStreamReader(StAXUtils.java:133)
at org.apache.axis2.util.XMLUtils.toOM(XMLUtils.java:596)
at org.apache.axis2.util.XMLUtils.toOM(XMLUtils.java:581)
at org.apache.axis2.deployment.DescriptionBuilder.buildOM(DescriptionBuilder.java:97)
at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:86)
at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:641)
at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:116)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:68)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:184)
at org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:150)
at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:143)
at QueryScoreStub.<init>(QueryScoreStub.java:91)
at QueryScoreStub.<init>(QueryScoreStub.java:77)
at QueryScoreStub.<init>(QueryScoreStub.java:125)
at QueryScoreStub.<init>(QueryScoreStub.java:117)
at webServiceRequestConnector.handleService(webServiceRequestConnector.java:1014)
at webServiceRequestConnector.postRequest(webServiceRequestConnector.java:173)
at FinalInterface.receiveResponse(FinalInterface.java:76)
at ExtConnectionManager.processRequest(ExtConnectionManager.java:88)
at ExtConnectionManager.processRequest(ExtConnectionManager.java:112)
at InterfaceWorkflowExecutor.call(InterfaceWorkflowExecutor.java:242)
at edu.emory.mathcs.backport.java.util.concurrent.FutureTask.run(FutureTask.java:178)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
at java.lang.Thread.run(Thread.java:595)
一部のリクエストだけでこれが失敗する理由はわかりません。
インターネットから以下を読みました:
- Glassfishにはwebservice-rt.jarという名前のjarがあり、これを使用してWebサービスを呼び出します。
- このエラーは、popContext()メソッド内のNamespaceSupportクラス内でスローされます。
- また、このエラーは、最初にpushContextメソッドを呼び出さずにpopContextを試行したことが原因である可能性があります。
上記を除いて、他の助けは特定できませんでした。
誰かが問題が正確に何であるかについて私を助けてくれますか?
また、5つのサービスのうち、1つのサービスだけが失敗するわけではありません。2つのサービスが失敗することもあれば、1つおよび3つのサービスが失敗することもあります。
したがって、問題が外部サービスにあるとは思えません。:( :(