如何让jersey框架扫描外部JAR中定义的资源?

pjngdqdw  于 2021-06-29  发布在  Java
关注(0)|答案(2)|浏览(602)

我想使用jersey framework2.33来使用restapi。我的web.xml类似于:

  1. <!-- Added By Habil Harati -->
  2. <servlet>
  3. <servlet-name>RestWebServiceServlet</servlet-name>
  4. <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
  5. <init-param>
  6. <param-name>jersey.config.server.provider.packages</param-name>
  7. <param-value>org.dpdouran.restapi</param-value>
  8. </init-param>
  9. <load-on-startup>1</load-on-startup>
  10. </servlet>
  11. <servlet-mapping>
  12. <servlet-name>RestWebServiceServlet</servlet-name>
  13. <url-pattern>/xforce/restapiservice/*</url-pattern>
  14. </servlet-mapping>
  15. <!-- End Habil Harati -->

我在另一个项目中定义了“org.dpdouran.restapi”,并将该项目添加到这个项目的类路径中,然后将类似这样的类添加到这个包中

  1. package org.dpdouran.restapi;
  2. import javax.ws.rs.GET;
  3. import javax.ws.rs.Path;
  4. import javax.ws.rs.Produces;
  5. import javax.ws.rs.core.MediaType;
  6. @Path("apireader")
  7. public class ApiDataReader {
  8. @GET
  9. @Path("get")
  10. @Produces(MediaType.TEXT_PLAIN)
  11. public String getIt() {
  12. return "Got it!";
  13. }
  14. }

问题是,当我将包“org.dpdouran.restapi”添加到主项目时,它工作正常,但当我剪切包并将其粘贴到另一个项目中,然后将该项目作为依赖项添加到classpath中时,它就不工作了。请帮我解决这个问题。我不能把那个包放在我的主要项目里。我必须使用classpath和eclipse,但我不能使用maven。

hxzsmxv2

hxzsmxv21#

我偶然发现了这个问题。我在我的主项目中创建了一个没有任何类的包,然后在我的另一个项目中创建了同一个包,并将我的所有类都放在那里。现在jersey框架可以扫描这些类并理解注解。

qvsjd97n

qvsjd97n2#

如果主项目是动态web项目,则只需进入其部署程序集属性页,并将另一个项目添加到其中。

相关问题