2016-03-08 69 views
0

我想在Netbeans 8.1創建使用Web App項目類型簡單REST服務,與JDK 1.8Glassfish Server 4.1.1部署。 我需要使用外部庫來提供服務功能,即tika和lucene。添加外部罐在NetBeans休息服務在GlassFish中

我的問題是,如果我添加任何廣口瓶(右擊 - >添加JAR /文件夾:蒂卡-APP-1.12.jar)在我的鈮項目庫,我得到:

  • 錯誤部署時:

嚴重:未找到[javax/cache/configuration/Configuration]類。 錯誤而載入[類 org.apache.cxf.jaxrs.client.cache.CacheControlFeature]

  • 錯誤調用時:

Advertencia:StandardWrapperValve [BusquedaApplication]: Servlet.service()用於servlet BusquedaApplication拋出異常 java.lang.NullPointerException在 org.apache.cxf.jaxrs.validation.JAXRSBeanValidationInInterceptor.filter(JAXRSBeanValidationInInter ceptor.java:64) 在 org.glassfish.jersey.server.ContainerFilteringStage.apply(ContainerFilteringStage.java:132) ...

我曾嘗試添加JAR文件中glassfish/libglassfish/domains/<mydomain>/libglassfish/domains/<mydomain>/lib/ext但錯誤仍然存​​在。 請注意,只要將該jar添加到Nb庫文件夾中,就會顯示這些錯誤,無論我是否在代碼中引用它們。

如果我刪除罐子服務得到部署沒有錯誤,我也可以正確調用它,並得到適當的響應。

任何洞察正確的方式來處理這些外部庫非常感謝。

回答

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中使用委託反演模型。爲此,請在glassfish-web.xml文件的class-loader元素中設置delegate="false"

這對我有效。我希望我能幫助處於類似情況的其他人。