2012-06-26 5 views
3

Я пытаюсь разработать новый веб-сервис с использованием аннотаций JAX-WS и JAXB. Когда я развернуть .jar в axis2 и откройте браузер, чтобы получить генерируемый .wsdl я получаю следующее сообщение об ошибке:Ошибка Axis2 при генерации wsdl

[ERROR] Error occurred generating WSDL file for Web service implementation class {foo.bar.myServiceImpl} 
java.lang.NoClassDefFoundError: com/sun/xml/ws/api/server/Container 
     at java.lang.Class.getDeclaredMethods0(Native Method) 
     at java.lang.Class.privateGetDeclaredMethods(Unknown Source) 
     at java.lang.Class.getMethod0(Unknown Source) 
     at java.lang.Class.getMethod(Unknown Source) 
     at org.apache.axis2.jaxws.description.builder.JAXWSRIWSDLGenerator.generateWsdl(JAXWSRIWSDLGenerator.java:179) 
     at org.apache.axis2.jaxws.description.builder.JAXWSRIWSDLGenerator.initialize(JAXWSRIWSDLGenerator.java:390) 
     at org.apache.axis2.jaxws.description.builder.JAXWSRIWSDLGenerator.getWSDL(JAXWSRIWSDLGenerator.java:383) 
     at org.apache.axis2.description.AxisService.printWSDL(AxisService.java:1394) 
     at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:154) 
     at org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:281) 
     at org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:187) 
     at org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:82) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
     at java.lang.Thread.run(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: com.sun.xml.ws.api.server.Container 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     ... 15 more 

копания в источнике, я замечаю, что com.sun.xml.ws.api .server.Container является частью реализации jaxws-rt, которая не является частью дистрибутива Axis2 (не может найти его в папке/lib /). Почему это? Я пропустил здесь пункт?

ответ

2

Хорошо, получилось. Я отправлю ответ, чтобы никто другой не ударил его (или ее) головой к стене.

У меня была старая переменная среды JAVA_HOME, установленная в моей системе. Это указывало на установщик JRE, но он должен указывать на установленный JDK. Это все.

+0

Не могли бы вы отметить это как принятый ответ, чтобы он не продолжал отображаться как неотвеченный вопрос? – Kenster

+0

Я бы с удовольствием, но мне нужно подождать еще 21 час в соответствии с stackoverflow. – Bjarne77

2

У меня была та же проблема. Мне нужно добавить зависимости к jaxws-maven-plugin. Без этих зависимостей это меня вызывает ту же ошибку

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>jaxws-maven-plugin</artifactId> 
      <configuration> 
       <wsdlDirectory>src/main/resources/wsdl/</wsdlDirectory> 
       <keep>true</keep> 
       <sourceDestDir>${project.build.directory}/generated-sources/wsimport</sourceDestDir> 
       <sei></sei> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>com.sun.xml.ws</groupId> 
        <artifactId>jaxws-rt</artifactId> 
        <version>2.1.4</version> 
       </dependency> 
       <dependency> 
        <groupId>com.sun.xml.ws</groupId> 
        <artifactId>jaxws-tools</artifactId> 
        <version>2.1.4</version> 
       </dependency> 
      </dependencies> 
      <executions> 
       <execution> 
        <id>generate-from-wsdl</id> 
        <goals> 
         <goal>wsimport</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
Смежные вопросы