Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 一个JAR中的Spring JPA存储库不能用于另一场战争_Java_Spring_Jpa_Jar_War - Fatal编程技术网

Java 一个JAR中的Spring JPA存储库不能用于另一场战争

Java 一个JAR中的Spring JPA存储库不能用于另一场战争,java,spring,jpa,jar,war,Java,Spring,Jpa,Jar,War,我有一个非常简单的SpringJPA存储库,它被打包到一个JAR中并存储在本地maven存储库中。 我可以在单元测试和一个小的主测试例程中使用JPA存储库。它自动连线,没有任何问题。 以下是我的JPA存储库的定义: public interface TestRepo extends CrudRepository<Seminar , Integer > { List<Seminar> findAll(); @Autowired TestRepo testRepo; 我得

我有一个非常简单的SpringJPA存储库,它被打包到一个JAR中并存储在本地maven存储库中。 我可以在单元测试和一个小的主测试例程中使用JPA存储库。它自动连线,没有任何问题。 以下是我的JPA存储库的定义:

public interface TestRepo extends CrudRepository<Seminar , Integer > {
List<Seminar> findAll();
@Autowired
TestRepo testRepo;
我得到一个运行时错误,没有定义合适的bean。其他bean也可以工作——但一旦它进入JPA存储库,它就不工作了

我的意思是,当然你不能@Autowire一个接口——在战争中,当我调试它时,ApplicationContext中没有JPA存储库bean——JAR中的所有其他bean都在那里


知道问题出在哪里吗?

您是否在web应用程序的spring配置中导入了jar的applicationContext.xml文件?如果您不知道,那么webapp对这种配置一无所知,也不会神奇地配置spring-data。不-我没有将applicationContext.xml从JAR导入WAR。如何导入applicationContext.xml和Java配置类?那么它只是另一个包含类的库。它包含的applicationContext.xml文件没有被任何人使用。问题是:JAR的applicationContext.xml中定义的所有其他服务都可以从WAR访问。只有JPA存储库在运行时不可注入。这可能是因为您的实际webapp spring配置配置为扫描定义服务的包,但未配置为使用spring-data-JPA。您是否在web应用程序的spring配置中导入了jar的applicationContext.xml文件?如果您不知道,那么webapp对这种配置一无所知,也不会神奇地配置spring-data。不-我没有将applicationContext.xml从JAR导入WAR。如何导入applicationContext.xml和Java配置类?那么它只是另一个包含类的库。它包含的applicationContext.xml文件没有被任何人使用。问题是:JAR的applicationContext.xml中定义的所有其他服务都可以从WAR访问。只有JPA存储库在运行时是不可注入的。这可能是因为您的实际webapp spring配置配置为扫描定义了服务的包,但没有配置为使用spring数据JPA。
@Autowired
TestRepo testRepo;