2013-09-27 2 views
4

У меня есть стандартное веб-приложение J2EE, которое включает веб-службы. Я использую библиотеку webservices-rt для размещения сервисов. [См. Зависимость от maven ниже]. Тем не менее, я получаю следующее исключение во время выполнения:При развертывании веб-приложения я получаю исключение NoClassDefFoundError: LocalizableImpl

SEVERE: Exception sending context initialized event to listener instance of class com.sun.xml.ws.transport.http.servlet.WSServletContextListener 
java.lang.NoClassDefFoundError: com/sun/xml/ws/util/localization/LocalizableImpl 
    at com.sun.xml.ws.util.exception.JAXWSExceptionBase.<init>(JAXWSExceptionBase.java:63) 
    at com.sun.xml.ws.transport.http.servlet.WSServletException.<init>(WSServletException.java:47) 
    at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:118) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [...] 
    at java.lang.Thread.run(Thread.java:724) 
Caused by: java.lang.ClassNotFoundException: com.sun.xml.ws.util.localization.LocalizableImpl 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
    ... 33 more 

Maven WS Dependency

<dependency> 
     <groupId>com.sun.xml.ws</groupId> 
     <artifactId>webservices-rt</artifactId> 
     <version>1.4</version> 
     <scope>compile</scope> 
    </dependency> 

Я пропускаю библиотеку? Я попытался добавить jaxws-rt. Однако для этого требуется дополнительное репо [jboss]. Я немного извиняюсь за это, так как он вводит в проект множество новых библиотек.

ответ

0

Объявление репозитория JBoss автоматически не импортирует библиотеки репо. Это просто делает библиотеки доступными для импорта.

Нижняя строка заключается в том, что если вы хотите использовать класс, находящийся в библиотеке, вам нужно вытащить библиотеку в свой проект. Если библиотека находится в репозитории JBoss, вам необходимо объявить репозиторий JBoss.

+1

Я понимаю, но это также включает библиотеки, которые могут использоваться платформой JBoss. Я хочу привести минимальные внешние библиотеки, необходимые для выполнения задачи. – monksy

+0

Я отвечаю на ту часть, где вы говорите, что не можете объявить репо JBoss, потому что вы обеспокоены тем, что он может получить дополнительные зависимости. Это не должно волновать, поскольку объявление репо не влияет на зависимости. Если какая-то зависимость зависит от других зависимостей, которые вам не нужны, вы можете использовать исключения зависимостей. –

1

попробовать

Библиотека зависимостей JAX-WS «JAXWS-rt.jar» отсутствует.

Идём здесь http://jax-ws.java.net/.

Загрузить JAX-WS RI распространение.

Распакуйте его и скопируйте «jaxws-rt.jar» в папку библиотеки Tomcat «{$ TOMCAT}/lib».

Restart Tomcat.

+2

Copy-pasta http://www.mkyong.com/webservices/jax-ws/java-lang-classnotfoundexception-com-sun-xml-ws-transport-http-servlet-wsservletcontextlistener/? – Lan

0

Для мавенны, кота приложения попробовать эту зависимость в вашем pom.xml

<dependencies> 
    <!-- jax-ws maven dependency --> 
    <dependency> 
     <groupId>com.sun.xml.ws</groupId> 
     <artifactId>jaxws-rt</artifactId> 
     <version>2.2.8</version> 
    </dependency> 
    <!-- servlet provided by tomcat --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.1.0</version> 
     <scope>provided</scope> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-core --> 
    <dependency> 
     <groupId>com.sun.xml.bind</groupId> 
     <artifactId>jaxb-core</artifactId> 
     <version>2.2.7</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/com.sun.xml.stream.buffer/streambuffer --> 
    <dependency> 
     <groupId>com.sun.xml.stream.buffer</groupId> 
     <artifactId>streambuffer</artifactId> 
     <version>1.5.3</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/com.sun.xml.bind/jaxb-impl --> 
    <dependency> 
     <groupId>com.sun.xml.bind</groupId> 
     <artifactId>jaxb-impl</artifactId> 
     <version>2.2.7</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/com.sun.xml.ws/policy --> 
    <dependency> 
     <groupId>com.sun.xml.ws</groupId> 
     <artifactId>policy</artifactId> 
     <version>2.3.1</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/org.glassfish.gmbal/gmbal-api-only --> 
    <dependency> 
     <groupId>org.glassfish.gmbal</groupId> 
     <artifactId>gmbal-api-only</artifactId> 
     <version>3.2.0-b003</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/org.glassfish.ha/ha-api --> 
    <dependency> 
     <groupId>org.glassfish.ha</groupId> 
     <artifactId>ha-api</artifactId> 
     <version>3.1.9</version> 
    </dependency> 
</dependencies> 

Я надеюсь, что это работает для новых людей, которые будут стоять этот вопрос

С уважением

Смежные вопросы