在netbeans中添加外部罐子以在glassfish中进行休息服务

时间:2016-03-08 15:40:40

标签: rest netbeans glassfish jax-rs

我正在尝试使用REST中的Web App项目类型和Netbeans 8.1创建一个简单的JDK 1.8服务,并部署在Glassfish Server 4.1.1中。 我需要使用外部库来提供服务功能,即tika和lucene。

我的问题是,如果我在我的Nb项目的库中添加任何jar(右键单击 - >添加jar /文件夹:tika-app-1.12.jar),我得到:

  • 部署时出错:
  

Grave:找不到类[javax / cache / configuration / Configuration]。   加载时出错[类   org.apache.cxf.jaxrs.client.cache.CacheControlFeature]

  • 调用时出错:
  

Advertencia:StandardWrapperValve [BusquedaApplication]:   servlet的Servlet.service()BusquedaApplication引发了异常   java.lang.NullPointerException at   org.apache.cxf.jaxrs.validation.JAXRSBeanValidationInInterceptor.filter(JAXRSBeanValidationInInterceptor.java:64)   在   org.glassfish.jersey.server.ContainerFilteringStage.apply(ContainerFilteringStage.java:132)   ...

我尝试在glassfish/libglassfish/domains/<mydomain>/libglassfish/domains/<mydomain>/lib/ext中添加jar文件,但错误仍然存​​在。 请注意,只要我在Nb库文件夹中添加jar,就会显示这些错误,无论我是否在我的代码中引用它。

如果我删除了jars,服务就会毫无错误地部署,我也可以正确地调用它并获得适当的响应。

非常感谢任何有关处理这些外部库的正确方法的见解。

1 个答案:

答案 0 :(得分:0)

好的,我想我已经明白了。

能够使用外部库:

  • 请勿将它们打包到war文件中。在Nb:转到Project Properties -> Libraries -> Compile-time libraries。然后取消选中所有列出的库的“包”框。

  • 将所有.jar个库复制到<domains-folder>/<your-domain-name>/lib。请注意,您的域文件夹可能不在Glassfish的安装目录中。您可以在Nb(转到Services tab -> right-click Glassfish server -> Properties -> Common -> Domains Folder

  • 中检查服务器属性
  • 在Servlet中使用委托反转模型。为此,请在delegate="false"文件的class-loader元素中设置glassfish-web.xml

这对我有用。我希望我能在类似的情况下帮助其他任何人。