Java 如何从jersey web项目调用jar文件中的方法?

Java 如何从jersey web项目调用jar文件中的方法?,java,maven,jar,jersey-2.0,web.xml,Java,Maven,Jar,Jersey 2.0,Web.xml,我已经在EclipseIDE中创建了一个Maven项目(eng_comparison),使用jersey quickstart webapp原型 EngComparator.java 其中,EngProvider(接口)和EngProviderImpl(类)作为jar文件包含在项目中 web.xml index.jsp Jersey Web应用程序 org.glassfish.jersey.servlet.ServletContainer jersey.config.server.provid

我已经在EclipseIDE中创建了一个Maven项目(eng_comparison),使用jersey quickstart webapp原型

EngComparator.java

其中,EngProvider(接口)和EngProviderImpl(类)作为jar文件包含在项目中

web.xml


index.jsp
Jersey Web应用程序
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.zoo.web.eng.eng\u比较
Jersey Web应用程序
/*
在tomcat服务器(9.0)上运行此项目时,我发现以下错误

NoClassDefFoundError:com/adv/zoo/web/model/auto/EngProvider

ClassNotFoundException:com.adv.zoo.web.model.auto.EngProvider

注意:我已经在项目的构建路径中添加了EngProvider接口和EngProviderImpl类作为jar,但它仍然显示了这个错误。我试图调用JAR文件中的一个方法(添加到构建路径中)

但是,当我将项目作为java应用程序运行时,它运行良好。

我的项目结构:


在创建战争时,您的jar是否会在WEB-INF/lib中结束?@ThorbjørnRavnAndersen不,在创建战争时,我的jar文件没有进入WEB-INF/lib文件夹,这可以解释为什么类文件不在那里,就像异常情况所说的那样。@ThorbjørnRavnAndersen非常感谢。我已经将JAR包含在WEB-INF/lib中,现在它可以为我工作了。
 package com.zoo.web.eng.eng_comparison;

    import java.io.FileNotFoundException;
    import java.io.IOException;

    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;
    import com.adv.zoo.web.model.auto.EngProvider;
    import com.adv.zoo.web.model.auto.EngProviderImpl;


    @Path("compare")
    public class EngComparator {

        public static String data = "safe";

        @GET
        @Produces(MediaType.TEXT_PLAIN)
      public String fetchContent() throws FileNotFoundException, IOException, Throwable {

          EngProvider engProvider =   new EngProviderImpl();

          String content = engProvider.getEng(data);

          return content;

      }
    }
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

  <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
      <servlet-name>Jersey Web Application</servlet-name>
      <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
      <init-param>
          <param-name>jersey.config.server.provider.packages</param-name>
          <param-value>com.zoo.web.eng.eng_comparison</param-value>
      </init-param>
  </servlet>
  <servlet-mapping>
      <servlet-name>Jersey Web Application</servlet-name>
      <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>