IntelliJ中的基本新RESTful项目无法运行,注释扫描失败?

我正在运行IntelliJ 13.1.3。 我创建一个新项目,检查REST风格的Web服务(2.2),选中生成服务器代码示例框,单击下一步,输入项目名称,然后单击完成。

我现在有一个带有代码的示例项目。 由于我没有改变任何内容,并且这些内容都是自动生成的,所以我应该能够运行并使其运行。

可悲的是,这失败了。 IntelliJ无法找到com.sun.jersey来导入任何内容,特别是示例代码使用的HttpServerFactory类。 我发现这个问题似乎是同样的问题,并按照说明那里。 这是有效的,现在编译项目。

所以,我跑了,期待一些控制台输出和通过在浏览器中访问本地主机来获得“Hello World”的能力。 相反,我得到一个异常堆栈跟踪。 控制台输出是:

Jun 21, 2014 10:24:34 AM com.sun.jersey.api.core.ClasspathResourceConfig init
INFO: Scanning for root resource and provider classes in the paths:
  D:Program FilesJavajdk1.8.0_05jrelibcharsets.jar
  D:Program FilesJavajdk1.8.0_05jrelibdeploy.jar
  D:Program FilesJavajdk1.8.0_05jrelibjavaws.jar
  D:Program FilesJavajdk1.8.0_05jrelibjce.jar
  D:Program FilesJavajdk1.8.0_05jrelibjfr.jar
  D:Program FilesJavajdk1.8.0_05jrelibjfxswt.jar
  D:Program FilesJavajdk1.8.0_05jrelibjsse.jar
  D:Program FilesJavajdk1.8.0_05jrelibmanagement-agent.jar
  D:Program FilesJavajdk1.8.0_05jrelibplugin.jar
  D:Program FilesJavajdk1.8.0_05jrelibresources.jar
  D:Program FilesJavajdk1.8.0_05jrelibrt.jar
  D:Program FilesJavajdk1.8.0_05jrelibextaccess-bridge-64.jar
  D:Program FilesJavajdk1.8.0_05jrelibextcldrdata.jar
  D:Program FilesJavajdk1.8.0_05jrelibextdnsns.jar
  D:Program FilesJavajdk1.8.0_05jrelibextjaccess.jar
  D:Program FilesJavajdk1.8.0_05jrelibextjfxrt.jar
  D:Program FilesJavajdk1.8.0_05jrelibextlocaledata.jar
  D:Program FilesJavajdk1.8.0_05jrelibextnashorn.jar
  D:Program FilesJavajdk1.8.0_05jrelibextsunec.jar
  D:Program FilesJavajdk1.8.0_05jrelibextsunjce_provider.jar
  D:Program FilesJavajdk1.8.0_05jrelibextsunmscapi.jar
  D:Program FilesJavajdk1.8.0_05jrelibextsunpkcs11.jar
  D:Program FilesJavajdk1.8.0_05jrelibextzipfs.jar
  D:testtargetclasses
  D:testlibjersey-container-servlet.jar
  D:testlibjersey-container-servlet-core.jar
  D:testlibjersey-client.jar
  D:testlibjavax.ws.rs-api-2.0.jar
  D:testlibjersey-common.jar
  D:testlibjersey-server.jar
  C:UsersDouglas.m2repositorycomsunjerseyjersey-server1.18.1jersey-server-1.18.1.jar
  C:UsersDouglas.m2repositorycomsunjerseyjersey-core1.18.1jersey-core-1.18.1.jar
  D:Program FilesJetBrainsIntelliJ IDEA 13.1.3libidea_rt.jar
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 39168
    at jersey.repackaged.org.objectweb.asm.ClassReader.readClass(ClassReader.java:1976)
    at jersey.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:464)
    at jersey.repackaged.org.objectweb.asm.ClassReader.accept(ClassReader.java:420)
    at com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess(AnnotationScannerListener.java:138)
    at com.sun.jersey.core.spi.scanning.JarFileScanner.scan(JarFileScanner.java:97)
    at com.sun.jersey.core.spi.scanning.JarFileScanner$1.f(JarFileScanner.java:74)
    at com.sun.jersey.core.util.Closing.f(Closing.java:71)
    at com.sun.jersey.core.spi.scanning.JarFileScanner.scan(JarFileScanner.java:71)
    at com.sun.jersey.core.spi.scanning.FilesScanner.scan(FilesScanner.java:83)
    at com.sun.jersey.core.spi.scanning.FilesScanner.scan(FilesScanner.java:74)
    at com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:80)
    at com.sun.jersey.api.core.ClasspathResourceConfig.init(ClasspathResourceConfig.java:119)
    at com.sun.jersey.api.core.ClasspathResourceConfig.<init>(ClasspathResourceConfig.java:101)
    at com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:263)
    at com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:246)
    at com.sun.jersey.api.container.httpserver.HttpServerFactory.create(HttpServerFactory.java:117)
    at com.sun.jersey.api.container.httpserver.HttpServerFactory.create(HttpServerFactory.java:92)
    at example.HelloWorld.main(HelloWorld.java:26)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

Process finished with exit code 1

我在这个问题上找到的所有设备都是这个自我解决的帖子,这表明在某个地方有一个损坏的Java类会导致注释扫描失败,但我已经检查了我的平台设置/ SDK,没有看到任何不合适的地方,而且我正在全新安装。

任何想法如何解决这个问题,或为什么需要修复导入?


我在Java 8下运行的时候遇到了同样的问题。在允许服务器运行的意义上,回归到Java 7“固定”它。


升级泽西1.19应该做到这一点。

链接地址: http://www.djcxy.com/p/80133.html

上一篇: Basic new RESTful project in IntelliJ fails to run, annotation scan failure?

下一篇: percent(interval=None) always returns 0 regardless of interval value PYTHON