java - 配置 com.sun.xml.ws.transport.http.servlet.WSServletContextListener 类的应用程序监听器时出错

标签 java web-services netbeans heroku

我在 Tomcat 上创建了 Maven Web 服务。它与 Netbeans 一起成功运行。我尝试使用本教程将我的 Web 服务部署到 heroku:https://devcenter.heroku.com/articles/java-webapp-runner 。但我收到这些错误:

 ekcdr@ekcdr-EasyNote-RS65-M-001TK:~/NetBeansProjects/webserviceHeroku_tc2$ java -jar target/endorsed/webapp-runner.jar target/*.war
Adding Context / for target/webserviceHeroku_tc2-1.0-SNAPSHOT.war
Haz 04, 2013 12:03:51 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
Haz 04, 2013 12:03:51 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFO: Using a shared selector for servlet write/read
Haz 04, 2013 12:03:51 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Tomcat
Haz 04, 2013 12:03:51 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.34
Haz 04, 2013 12:03:51 PM org.apache.catalina.startup.ContextConfig getDefaultWebXmlFragment
INFO: No global web.xml found
Haz 04, 2013 12:03:53 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Error configuring application listener of class com.sun.xml.ws.transport.http.servlet.WSServletContextListener
java.lang.ClassNotFoundException: com.sun.xml.ws.transport.http.servlet.WSServletContextListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:532)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:514)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:133)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4727)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)

Haz 04, 2013 12:03:53 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Skipped installing application listeners due to previous error(s)
Haz 04, 2013 12:03:53 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Error listenerStart
Haz 04, 2013 12:03:53 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/] startup failed due to previous errors
SEVERE: Context [/] failed in [org.apache.catalina.core.StandardContext] lifecycle. Allowing Tomcat to shutdown.
Haz 04, 2013 12:03:53 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.mycompany</groupId>
    <artifactId>webserviceHeroku_tc2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>webserviceHeroku_tc2</name>

    <properties>
        <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>6.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <compilerArguments>
                        <endorseddirs>${endorsed.dir}</endorseddirs>
                    </compilerArguments>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.1.1</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.1</version>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${endorsed.dir}</outputDirectory>
                            <silent>true</silent>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>javax</groupId>
                                    <artifactId>javaee-endorsed-api</artifactId>
                                    <version>6.0</version>
                                    <type>jar</type>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>com.github.jsimone</groupId>
                                    <artifactId>webapp-runner</artifactId>
                                    <version>7.0.34.0</version>
                                    <destFileName>webapp-runner.jar</destFileName>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

问题是什么?

最佳答案

您似乎没有在 pom.xml 中添加对 com.sun.xml.ws.transport.http.servlet.WSServletContextListener 的依赖项。
pom.xml中添加以下存储库(如果已添加,请忽略)和依赖项

<repository>
    <id>deprecated</id>
    <name>JBoss Deprecated</name>
    <url>https://repository.jboss.org/nexus/content/repositories/‌​deprecated</url>
</repository>

<dependency>
   <groupId>com.sun.xml</groupId>
   <artifactId>jaxws-rt</artifactId>
   <version>2.0EA3</version>
</dependency>  

现在,打包您的应用程序并部署它。

注意:
问题的根本原因是运行应用程序所需的 jar 文件在您的 netbeans 类路径中可用(因此,它可以从中成功运行),但未将其添加到您的使用 maven 构建时的 application.war(WEB-INF/lib)。

希望有帮助。快乐学习。

关于java - 配置 com.sun.xml.ws.transport.http.servlet.WSServletContextListener 类的应用程序监听器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16913922/

相关文章:

JQuery AJAX 语法

web-services - 使用 NHibernate 通过 Web 服务保存数据?

php - 等待连接到 XDEBUG 的 Netbeans

java - 无法在 ...\PushServer\target\Push-Server-0.12.0-capsule-fat.jar 中找到 Premain-Class list 属性

java - 如何拆分文件路径以获取文件名?

java - 删除 Java 中的 dakuten/handakuten(又名十-十,ぱ→は)

Java 多播套接字未在特定网络接口(interface)上接收

c# - Windows 应用程序从包含 XML 数据的网站获取 XML 数据

java - Collections.emptyList() 与新实例

java - 如何在netbeans中从.form文件生成.java文件?