Код Axis WSDL2Java: ошибка сервера при быстром выполнении запросов - PullRequest
3 голосов
/ 16 января 2011

Мне предоставлен сторонний wsdl, дескриптор развертывания и т. Д. Для настраиваемого шифрования для веб-службы Axis. Я использовал WSDL2Java для генерации классов Java, и все это работает довольно хорошо ... до определенного момента. Когда я вызываю методы с интервалом в несколько минут, они работают правильно и возвращают действительные данные. но когда я вызываю их (как мне нужно) в быстрой последовательности, я получаю простую старую ошибку сервера (ниже).

Если я вышлю коды неисправности оси и подробности, я получу следующее: -

класс org.apache.axis.AxisFault Код ошибки = {http://xml.apache.org/axis/}Server Причина ошибки = Ошибка сервера Fault String = Ошибка сервера Сведения об ошибке = [Lorg.w3c.dom.Element; @ 2d4ba772 [Ошибка сервера в org.apache.axis.handlers.soap.SOAPService.invoke (SOAPService.java:473) в org.apache.axis.server.AxisServer.invoke (AxisServer.java:281) в org.apache.axis.transport.http.AxisServlet.doPost (AxisServlet.java:699) на javax.servlet.http.HttpServlet.service (HttpServlet.java:637) в org.apache.axis.transport.http.AxisServletBase.service (AxisServletBase.java:327) на javax.servlet.http.HttpServlet.service (HttpServlet.java:717) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) в org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter (ReplyHeaderFilter.java:96) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:235) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:230) в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:175) в org.jboss.web.tomcat.security.SecurityAssociationValve.invoke (SecurityAssociationValve.java:182) в org.jboss.web.tomcat.security.JaccContextValve.invoke (JaccContextValve.java:84) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:128) в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:104) в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:241) в org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:844) в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:580) в org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:447) на java.lang.Thread.run (Thread.java:595) , 3-е имя_хоста

Может кто-нибудь помочь, пожалуйста? Я в своем уме .. Может ли это быть проблема синхронизации / кеширования? Возможно, одно из значений кэша в методе createCall (), которое создает инструмент WSDL2JAVA?

1 Ответ

0 голосов
/ 15 марта 2011

Вот как я генерирую клиент оси с помощью скрипта сборки ant:

<java classname="org.apache.axis.wsdl.WSDL2Java" fork="true" failonerror="true" classpathref="classpath.path">
    <arg value="-v"/>
    <arg value="-o"/>
    <arg file="tmp/src"/>
    <arg value="-p"/>
    <arg value="com.your.package"/>
    <arg value="${server.url}/${servicename}?wsdl"/>
</java>

Может быть, вы используете странную комбинацию параметров?Вы проверили на тех?Выше для оси 1.4, насколько я помню.

Какую версию вы используете 2.0 или 1.4?Я знаю, что мне потребовалось довольно много времени, чтобы получить это право для 2.0.Вот как это работает с mvn:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>axistools-maven-plugin</artifactId>
    <version>1.3</version>
    <configuration>
        <outputDirectory>${project.build.directory}/generated/main/java</outputDirectory>
        <urls>
            <url>http://yourserver:yourport/YourService?wsdl</url>
        </urls>
        <packageSpace>com.your.package</packageSpace>
        <serverSide>false</serverSide>
        <subPackageByFileName>false</subPackageByFileName>
        <wrapArrays>false</wrapArrays>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Я надеюсь, что это поможет пролить некоторый свет или дать дополнительные идеи по этому вопросу.

Возможно, вы также захотите проверить, правильно ли работает развернутый материал.,Это может не быть проблемой генерации клиентов вообще.Ведь это говорит об ошибке сервера.Проверьте файлы журналов на сервере на наличие стековых трасс, возможно, в этом есть какая-то подсказка.

...