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

我正在使用Windows,NetBeans 8.0.2,GlassFish 4.1。 我无法让我的示例JAX-RS应用程序运行。

这是pom.xml:

 4.0.0 com.wld HelloWebService war 1.0-SNAPSHOT HelloWebService http://maven.apache.org   com.sun.jersey jersey-server 1.8   junit junit 3.8.1 test   org.glassfish.metro webservices-rt 2.3    HelloWebService   maven-war-plugin 2.6  src/main/webapp/WEB-INF/web.xml      UTF-8 1.8 1.8   

和web.xml:

   Restful Web Application  jersey-serlvet  com.sun.jersey.spi.container.servlet.ServletContainer   com.sun.jersey.config.property.packages com.wld.rest  1   jersey-serlvet /rest/*   

这是我的控制台输出:

 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 ------------------------------------------------------- TESTS ------------------------------------------------------- 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.(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.(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配置。 对于依赖项,您可以使用

  org.glassfish.jersey.containers jersey-container-servlet ${jersey2.version} provided  

和配置

  jersey-serlvet org.glassfish.jersey.servlet.ServletContainer  jersey.config.server.provider.packages com.wld.rest  1   jersey-serlvet /api/*  

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

我肯定会研究的一件事是在GlassFish 4中更新Jersey 2 。 这是一篇非常好的文章。 您可能不会遇到任何问题简单的启动应用程序,但有了新function,尝试升级Glassfish中的Jersey可能会有所帮助。

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

泽西2.x文档也是一个好用的东西

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

  1. 新项目
  2. Maven→来自Archetype的项目
  3. 搜索jersey-quickstart-webapp
  4. 选择具有组ID org.glassfish.jersey.archetypes
  5. 应显示最新版本。