java - 如何让 Jersey 框架扫描外部 jars 中定义的资源?
问题描述
我想使用 Jersey Framework 2.33 来使用 rest api。我的 web.xml 就像:
<!-- Added By Habil Harati -->
<servlet>
<servlet-name>RestWebServiceServlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>org.dpdouran.restapi</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>RestWebServiceServlet</servlet-name>
<url-pattern>/xforce/restapiservice/*</url-pattern>
</servlet-mapping>
<!-- End Habil Harati -->
我在另一个项目中定义“org.dpdouran.restapi”并将该项目添加到该项目的类路径中,然后我将这样的类添加到该包中
package org.dpdouran.restapi;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("apireader")
public class ApiDataReader {
@GET
@Path("get")
@Produces(MediaType.TEXT_PLAIN)
public String getIt() {
return "Got it!";
}
}
问题是,当我将包“org.dpdouran.restapi”添加到主项目时,它可以正常工作,但是当我剪切包并将其粘贴到另一个项目中,然后将该项目作为依赖项添加到类路径中时,它不起作用。请帮我解决这个问题。我不能把那个包放在我的主项目中。我一定会使用类路径和eclipse,我不能使用maven。
解决方案
我偶然发现了这个问题。我在我的主项目中创建了包,其中没有任何类,然后我在另一个项目中创建了相同的包,并将所有类都放在那里。现在 Jersey 框架可以扫描这些类并理解注释。
推荐阅读
- typescript - 使用@nestjs/mongoose 时如何在文档界面中定义静态猫鼬方法?
- sql-server - 从动态查询 SQL 返回语句
- r - 使用 R 代码在 Proc IML 中迭代地模拟数据,然后在 SAS 程序中进行分析,这是一种更快的方法吗?
- sass - 如何使用 gulp 编译 bootstrap-material-design sass 文件?
- python - Python将单个列表分成多个子列表
- postgresql - 将压缩的 CSV(filename.csv.gz) 文件加载到 PostgreSQL 表中
- scala - 带有 Spark 解释器的 Zeppelin 忽略在类/函数定义之外声明的导入
- named-entity-recognition - IBM Watson NLU 中货币实体到实体提取的低分
- spring - 无法找到 JSP 翻译文件存储在 Google App 引擎中
- hyperledger-fabric - 如何从 Hyperledger Fabric 网络中检索交易以进行审计?