Java 如何在本地TomCat服务器上托管的JSF应用程序中使用外部JAR中声明的接口

Java 如何在本地TomCat服务器上托管的JSF应用程序中使用外部JAR中声明的接口,java,eclipse,jsf,tomcat,jar,Java,Eclipse,Jsf,Tomcat,Jar,我有一个依赖于外部JAR文件的JSF2应用程序。这样的JAR文件是由同一Eclipse工作集中的其他项目生成的。选择这种架构是为了模块化,所以我在JAR中有一些域核心服务。我的应用程序依赖于该JAR文件,并使用它来提供最终用户服务 在JSF2应用程序中,我有一个简单的托管bean,如下所示: package ufprJSF; import java.util.Collection; import javax.faces.bean.*; import unidades.dominio.Car

我有一个依赖于外部JAR文件的JSF2应用程序。这样的JAR文件是由同一Eclipse工作集中的其他项目生成的。选择这种架构是为了模块化,所以我在JAR中有一些域核心服务。我的应用程序依赖于该JAR文件,并使用它来提供最终用户服务

在JSF2应用程序中,我有一个简单的托管bean,如下所示:

package ufprJSF;

import java.util.Collection;

import javax.faces.bean.*;

import unidades.dominio.Cargo;
import unidades.dominio.repository.CargoRepository;

@ManagedBean
public class CargoBean {
    private CargoRepository cargoRepository;
    private Collection<Cargo> todos;

    public Collection<Cargo> getTodos() {
        return todos;
    }

    public String listarTodos() {
        return "cargos?faces-redirect=true";
    }
}
index.xhtml
没有使用上述bean,它只是显示一个菜单,其中包含指向该bean的
listarTodos()
方法的链接。控制台显示以下内容(在堆栈中的许多其他行中):

项目是编译的,因此在编译期间,会找到引用的接口,这使我相信JSF2应用程序的依赖关系设置正确。包含这种类型的JAR显示在Eclipse包资源管理器中的
引用库
节点下

如果我简单地评论第12行如下

...
@ManagedBean
public class CargoBean {
//      private CargoRepository cargoRepository;
    private Collection<Cargo> todos;
...
。。。
@ManagedBean
公共类货豆{
//私人货物储存库;
私人收藏托多;
...
然而,我的bean依赖于
CargoRepository
接口来完成它必须做的事情,因此我必须找到一种在JSF2应用程序中使用JAR的方法

在此问题上的任何帮助都将不胜感激


提前感谢!

检查Jar库是否存在于已部署的应用程序WEB-INF/lib目录中。

该Jar是否也存在于已部署的应用程序WEB-INF/lib目录中?@Stefan:不太可能,它只是在项目中引用,以允许使用其中声明的类型。你是在告诉我TomCat在运行期间需要它们吗运行时解析对这些类型的引用?当然,运行时也需要它们。@Stefan:非常感谢您的回答,它刚刚解决了我的问题!与专家交谈不同。请将您的建议添加为答案,我会将其标记为解决方案!
Caused by: java.lang.ClassNotFoundException: unidades.dominio.repository.CargoRepository
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1293)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1145)
    ... 33 more
...
@ManagedBean
public class CargoBean {
//      private CargoRepository cargoRepository;
    private Collection<Cargo> todos;
...