java – JEE无法运行JAX-RS WebService骨架应用程序

我正在使用Windows,NetBeans 8.0.2,GlassFish 4.1.我不能让我的示例JAX-RS应用程序运行.

这是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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.wld</groupId>
    <artifactId>HelloWebService</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>HelloWebService</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-server</artifactId>
            <version>1.8</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.glassfish.metro</groupId>
            <artifactId>webservices-rt</artifactId>
            <version>2.3</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>HelloWebService</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
</project>

和web.xml:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Restful Web Application</display-name>
    <servlet>
        <servlet-name>jersey-serlvet</servlet-name>
        <servlet-class>
            com.sun.jersey.spi.container.servlet.ServletContainer
        </servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.wld.rest</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>jersey-serlvet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
</web-app>

这是我的控制台输出:

NetBeans: Deploying on GlassFish Server 4.1
    profile mode: false
    debug mode: false
    force redeploy: true
Starting GlassFish Server 4.1
GlassFish Server 4.1 is running.
In-place deployment at C:\Users\tomasz.ducin\Learning\HelloWebService\target\HelloWebService
GlassFish Server 4.1, deploy, null, false
cd C:\Users\tomasz.ducin\Learning\HelloWebService; "JAVA_HOME=C:\\Program Files\\Java\\jdk1.8.0_31" cmd /c "\"\"C:\\Program Files\\NetBeans 8.0.2\\java\\maven\\bin\\mvn.bat\" -Dnetbeans.deploy=true -Dmaven.ext.class.path=C:\\Users\\tomasz.ducin\\AppData\\Roaming\\NetBeans\\8.0.2\\maven-nblib\\netbeans-eventspy.jar -Dfile.encoding=UTF-8 package\""
Scanning for projects...

------------------------------------------------------------------------
Building HelloWebService 1.0-SNAPSHOT
------------------------------------------------------------------------

--- maven-resources-plugin:2.5:resources (default-resources) @ HelloWebService ---
[debug] execute contextualize
Using 'UTF-8' encoding to copy filtered resources.
Copying 0 resource

--- maven-compiler-plugin:2.3.2:compile (default-compile) @ HelloWebService ---
Nothing to compile - all classes are up to date

--- maven-resources-plugin:2.5:testResources (default-testResources) @ HelloWebService ---
[debug] execute contextualize
Using 'UTF-8' encoding to copy filtered resources.
skip non existing resourceDirectory C:\Users\tomasz.ducin\Learning\HelloWebService\src\test\resources

--- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ HelloWebService ---
No sources to compile

--- maven-surefire-plugin:2.10:test (default-test) @ HelloWebService ---
Surefire report directory: C:\Users\tomasz.ducin\Learning\HelloWebService\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------

Results :

Tests run: 0, Failures: 0, Errors: 0, Skipped: 0


--- maven-war-plugin:2.6:war (default-war) @ HelloWebService ---
Packaging webapp
Assembling webapp [HelloWebService] in [C:\Users\tomasz.ducin\Learning\HelloWebService\target\HelloWebService]
Processing war project
Copying webapp resources [C:\Users\tomasz.ducin\Learning\HelloWebService\src\main\webapp]
Webapp assembled in [60 msecs]
Building war: C:\Users\tomasz.ducin\Learning\HelloWebService\target\HelloWebService.war
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 3.109s
Finished at: Sat May 30 14:53:50 CEST 2015
Final Memory: 11M/245M
------------------------------------------------------------------------
NetBeans: Deploying on GlassFish Server 4.1
    profile mode: false
    debug mode: false
    force redeploy: true
In-place deployment at C:\Users\tomasz.ducin\Learning\HelloWebService\target\HelloWebService
GlassFish Server 4.1, deploy, null, false

如您所见,只有一个java文件.没有资源,没有测试,没有测试资源.无论如何,GLassFish无法为该应用程序提供服务.我一直在寻找网络,但找不到原因.我正在考虑一些与Windows相关的东西,比如端口,防火墙或任何其他操作系统的东西.

下面是glassfish控制台输出:

Launching GlassFish on Felix platform
maj 30, 2015 2:53:34 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner createBundleProvisioner
INFO: Create bundle provisioner class = class com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner.
maj 30, 2015 2:53:34 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner$DefaultCustomizer getLocations
WARNING: Skipping entry  because it is not an absolute URI.
maj 30, 2015 2:53:34 PM com.sun.enterprise.glassfish.bootstrap.osgi.BundleProvisioner$DefaultCustomizer getLocations
WARNING: Skipping entry  because it is not an absolute URI.
Registered com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOSGiGlassFishRuntime@d21e255 in service registry.
Found populator: com.sun.enterprise.v3.server.GFDomainXml
#!## LogManagerService.postConstruct : rootFolder=C:\Program Files\glassfish-4.1\glassfish
#!## LogManagerService.postConstruct : templateDir=C:\Program Files\glassfish-4.1\glassfish\lib\templates
#!## LogManagerService.postConstruct : src=C:\Program Files\glassfish-4.1\glassfish\lib\templates\logging.properties
#!## LogManagerService.postConstruct : dest=C:\Users\tomasz.ducin\AppData\Roaming\NetBeans\8.0.2\config\GF_4.1\domain1\config\logging.properties
Info:   Running GlassFish Version: GlassFish Server Open Source Edition  4.1  (build 13)
Info:   Server log file is using Formatter class: com.sun.enterprise.server.logging.ODLLogFormatter
Info:   Realm [admin-realm] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.
Info:   Realm [file] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.
Info:   Realm [certificate] of classtype [com.sun.enterprise.security.auth.realm.certificate.CertificateRealm] successfully created.
Info:   Authorization Service has successfully initialized.
Info:   Registered org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy for persistence-type = replicated in BackingStoreFactoryRegistry
Info:   Grizzly Framework 2.3.15 started in: 312ms - bound to [/0.0.0.0:8080]
Info:   Grizzly Framework 2.3.15 started in: 0ms - bound to [/0.0.0.0:8181]
Info:   Grizzly Framework 2.3.15 started in: 10ms - bound to [/0.0.0.0:4848]
Info:   Grizzly Framework 2.3.15 started in: 5ms - bound to [/0.0.0.0:3700]
Info:   GlassFish Server Open Source Edition  4.1  (13) startup time : Felix (2 138ms), startup services(1 647ms), total(3 785ms)
Info:   Grizzly Framework 2.3.15 started in: 26ms - bound to [/0.0.0.0:7676]
Info:   Registered com.sun.enterprise.glassfish.bootstrap.osgi.EmbeddedOSGiGlassFishImpl@109d724c as OSGi service registration: org.apache.felix.framework.ServiceRegistrationImpl@4ba89729.
Info:   JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://WAWLT548.global.ad:8686/jndi/rmi://WAWLT548.global.ad:8686/jmxrmi
Info:   HV000001: Hibernate Validator 5.0.0.Final
Info:   Grizzly Framework 2.3.15 started in: 2ms - bound to [/0.0.0.0:8181]
Info:   Grizzly Framework 2.3.15 started in: 13ms - bound to [/0.0.0.0:8080]
Info:   visiting unvisited references
Info:   Java security manager is disabled.
Info:   Entering Security Startup Service.
Info:   Loading policy provider com.sun.enterprise.security.provider.PolicyWrapper.
Info:   Security Service(s) started successfully.
Info:   Created HTTP listener http-listener-1 on host/port 0.0.0.0:8080
Info:   Created HTTP listener http-listener-2 on host/port 0.0.0.0:8181
Info:   Created HTTP listener admin-listener on host/port 0.0.0.0:4848
Info:   Created virtual server server
Info:   Created virtual server __asadmin
Info:   Setting JAAS app name glassfish-web
Info:   Virtual server server loaded default web module 
Warning:   Ignore WEB-INF/sun-web.xml in archive /C:/Users/tomasz.ducin/Learning/HelloWebService/target/HelloWebService/, as WLS counterpart runtime xml WEB-INF/glassfish-web.xml is present in the same archive.
Info:   Scanning for root resource and provider classes in the packages:
  com.wld.rest
Info:   Root resource classes found:
  class com.wld.rest.HelloService
Info:   No provider classes found.
Info:   Initiating Jersey application, version 'Jersey: 1.8 06/24/2011 12:17 PM'
Severe:   WebModule[/HelloWebService]StandardWrapper.Throwable
com.sun.jersey.api.container.ContainerException: Unable to create resource
    at com.sun.jersey.server.impl.resource.SingletonFactory$Singleton.init(SingletonFactory.java:139)
    at com.sun.jersey.server.impl.application.WebApplicationImpl$10.f(WebApplicationImpl.java:584)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    [...]
    at com.sun.jersey.server.spi.component.ResourceComponentConstructor.construct(ResourceComponentConstructor.java:179)
    at com.sun.jersey.server.impl.resource.SingletonFactory$Singleton.init(SingletonFactory.java:137)
    ... 74 more
Caused by: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at com.sun.jersey.server.wadl.WadlGeneratorImpl.createResponse(WadlGeneratorImpl.java:198)
    at com.sun.jersey.server.wadl.WadlBuilder.generateResponse(WadlBuilder.java:395)
    [...]
    at com.sun.jersey.server.impl.wadl.WadlApplicationContextImpl.getApplication(WadlApplicationContextImpl.java:79)
    at com.sun.jersey.server.impl.wadl.WadlResource.<init>(WadlResource.java:77)
    ... 81 more

Severe:   WebModule[/HelloWebService]Servlet /HelloWebService threw load() exception
java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at com.sun.jersey.server.wadl.WadlGeneratorImpl.createResponse(WadlGeneratorImpl.java:198)
    at com.sun.jersey.server.wadl.WadlBuilder.generateResponse(WadlBuilder.java:395)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)

Severe:   Startup of context /HelloWebService failed due to previous errors
Severe:   ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:5954)
    at com.sun.enterprise.web.WebModule.start(WebModule.java:691)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5712)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:5946)
    ... 49 more
Caused by: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at com.sun.jersey.server.wadl.WadlGeneratorImpl.createResponse(WadlGeneratorImpl.java:198)
    at com.sun.jersey.server.wadl.WadlBuilder.generateResponse(WadlBuilder.java:395)
    [...]
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1382)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5704)
    ... 50 more

Warning:   java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1044)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:1024)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)

Severe:   Exception while invoking class com.sun.enterprise.web.WebApplication start method
java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:168)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)

Severe:   Exception during lifecycle processing
java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:168)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)

Severe:   Exception while loading the app
Severe:   Undeployment failed for context /HelloWebService
Severe:   Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
Info:   visiting unvisited references
Warning:   Ignore WEB-INF/sun-web.xml in archive /C:/Users/tomasz.ducin/Learning/HelloWebService/target/HelloWebService/, as WLS counterpart runtime xml WEB-INF/glassfish-web.xml is present in the same archive.
Info:   Scanning for root resource and provider classes in the packages:
  com.wld.rest
Info:   Root resource classes found:
  class com.wld.rest.HelloService
Info:   No provider classes found.
Info:   Initiating Jersey application, version 'Jersey: 1.8 06/24/2011 12:17 PM'
Severe:   WebModule[/HelloWebService]StandardWrapper.Throwable
com.sun.jersey.api.container.ContainerException: Unable to create resource
    at com.sun.jersey.server.impl.resource.SingletonFactory$Singleton.init(SingletonFactory.java:139)
    at com.sun.jersey.server.impl.application.WebApplicationImpl$10.f(WebApplicationImpl.java:584)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
    at com.sun.jersey.server.spi.component.ResourceComponentConstructor._construct(ResourceComponentConstructor.java:198)
    at com.sun.jersey.server.spi.component.ResourceComponentConstructor.construct(ResourceComponentConstructor.java:179)
    at com.sun.jersey.server.impl.resource.SingletonFactory$Singleton.init(SingletonFactory.java:137)
    ... 74 more
Caused by: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at com.sun.jersey.server.wadl.WadlGeneratorImpl.createResponse(WadlGeneratorImpl.java:198)
    at com.sun.jersey.server.wadl.WadlBuilder.generateResponse(WadlBuilder.java:395)
    at com.sun.jersey.server.wadl.WadlBuilder.generateMethod(WadlBuilder.java:164)
    at com.sun.jersey.server.wadl.WadlBuilder.generateResource(WadlBuilder.java:331)
    at com.sun.jersey.server.wadl.WadlBuilder.generateResource(WadlBuilder.java:269)
    at com.sun.jersey.server.wadl.WadlBuilder.generate(WadlBuilder.java:105)
    at com.sun.jersey.server.impl.wadl.WadlApplicationContextImpl.getApplication(WadlApplicationContextImpl.java:79)
    at com.sun.jersey.server.impl.wadl.WadlResource.<init>(WadlResource.java:77)
    ... 81 more

Severe:   WebModule[/HelloWebService]Servlet /HelloWebService threw load() exception
java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at com.sun.jersey.server.wadl.WadlGeneratorImpl.createResponse(WadlGeneratorImpl.java:198)
    at com.sun.jersey.server.wadl.WadlBuilder.generateResponse(WadlBuilder.java:395)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)

Severe:   Startup of context /HelloWebService failed due to previous errors
Severe:   ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:5954)
    at com.sun.enterprise.web.WebModule.start(WebModule.java:691)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5712)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:5946)
    ... 49 more
Caused by: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at com.sun.jersey.server.wadl.WadlGeneratorImpl.createResponse(WadlGeneratorImpl.java:198)
    at com.sun.jersey.server.wadl.WadlBuilder.generateResponse(WadlBuilder.java:395)
    [...]
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1382)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5704)
    ... 50 more

Warning:   java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1044)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:1024)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)

Severe:   Exception while invoking class com.sun.enterprise.web.WebApplication start method
java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:168)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)

Severe:   Exception during lifecycle processing
java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:168)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:122)
    [...]
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)

Severe:   Exception while loading the app
Severe:   Undeployment failed for context /HelloWebService
Severe:   Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: java.lang.NoSuchMethodError: com.sun.research.ws.wadl.Response.getRepresentationOrFault()Ljava/util/List;

我尝试过使用deps进行清理,构建,构建,多次重启IDE而没有任何效果.不知道该怎么做.

最佳答案
Glassfish 4使用Jersey 2.x.您应该相应地更改依赖关系和web.xml配置.对于依赖项,您可以使用

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>${jersey2.version}</version>
    <scope>provided</scope>
</dependency>

和配置

<servlet>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.wld.rest</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>jersey-serlvet</servlet-name>
    <url-pattern>/api/*</url-pattern>
</servlet-mapping>

最近看到很多人(使用Glassfish和泽西岛)的一个“问题”是Glassfish使用较旧版本的Jersey(旧的2.x版旧版).截至目前的最新情况是2.17. Glassfish使用2.x系列中第一个附近的东西.因此新功能似乎存在一些兼容性问题.

我肯定会关注的一件事是Updating Jersey 2 in GlassFish 4.这是一篇非常好的文章.您可能不会遇到任何问题简单的启动应用程序,但有了新功能,尝试升级Glassfish中的泽西岛可能会有所帮助.

另一件事,记得摆脱你的泽西1.x依赖.这两者完全不兼容.另请注意Maven依赖项中提供的范围.由于Glassfish已经内置了Jersey,我们只使用内部依赖项.

方便的好处是Jersey 2.x Documentation

哦,还有一件事.泽西岛有一个原型,可以帮助您轻松上手.在Netbeans中就是这么做的

>新项目
> Maven→来自Archetype的项目
>搜索jersey-quickstart-webapp
>选择具有组ID org.glassfish.jersey.archetypes的那个
>应显示最新版本.

转载注明原文:java – JEE无法运行JAX-RS WebService骨架应用程序 - 代码日志