我正在使用Spring Roo生成一堆Hibernate对象,在同一项目的单元测试中,如果我这样做,我可以成功地读写到数据库:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath*:/META-INF/spring/applicationContext.xml"})
public class SomeTest extends AbstractJUnit4SpringContextTests {
@Test
public void someTest() throws Exception {
MyUser myUser = MyUsers.findByUserId(123);
System.out.println(myUser.getFirstName());
}
....
现在,如果我做一个mvn干净安装包并将jar包含在一个外部项目中并执行相同的代码:
MyUser myUser = MyUsers.findByUserId(123);
System.out.println(myUser.getFirstName());
我得到“实体管理器尚未注入(Spring Aspects JAR是否配置为AJC/AJDT Aspect库?)
我尝试过在Spring Roo Hibernate项目中创建一个类,比如这样,并在上面添加ContextConfiguration:
@Service
@ContextConfiguration(locations = { "classpath*:/META-INF/spring/applicationContext.xml"})
public class SomeClassImpl {
public MyUser doSomething(){
MyUser myUser = MyUsers.findByUserId(123);
return myUser;
}
}
现在,当我在外部项目中调用doSomething()时:
public class TestDatabase {
public static void main(String[] args){
SomeClassImpl k = new SomeClassImpl();
k.doSomething();
}
}
…我得到了相同的错误:“实体管理器尚未注入(Spring Aspects JAR是否配置为AJC/AJDT Aspect库?)
查看生成的 AspectJ 代码:
privileged aspect MyUser_Roo_Jpa_ActiveRecord {
@PersistenceContext
transient EntityManager MyUser.entityManager;
public static final EntityManager MyUser.entityManager() {
EntityManager em = new MyUser().entityManager;
if (em == null) throw new IllegalStateException("Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)");
return em;
}
...我可以看到@PersistenceContext应该初始化MyUser.entityManager(),但当项目受到干扰并包含在外部项目中时,它并没有初始化。如何手动初始化entityManager?或者,当spring项目将上下文用作包含库来初始化entityManager时,是否有其他方法来初始化上下文?
因为应用程序上下文不知道模型。您正在从应用程序上下文中创建模型。如果您使用getBean(“MyUser”)获取模型;类似的东西会起作用。否则自动连接模型并将该模型用于您的crud操作。
您可以在MyUser-@PersistenceContext-Protected transient EntityManager EntityManager中看到以下代码:;那么只有entityManager对象将在Myuser中初始化。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath*:/META-INF/spring/applicationContext.xml"})
public class SomeTest extends AbstractJUnit4SpringContextTests {
@Autowired
MyUser myUser; // use this object for ur crud operations
@Test
public void someTest() throws Exception {
MyUser otherObject= myUser.findByUserId(123);
System.out.println(otherObject.getFirstName());
}
}
首先,我在netbeans中创建java项目,我想将netbeans中的java项目导入到eclipse kepler中的maven项目中,我尝试了一次,但是在eclipse kepler中编译时出错,但是如果在eclipse kepler中导入java项目并进行编译,就可以了。
问题内容: 我正在考虑如何使Android的支持库在Eclipse之外包含和编译。我使用Linux作为构建环境,没有使用任何IDE来创建应用程序,仅使用基本的Android SDK。我仅获得了有关Eclipse的此问题的答案,但是如何仅使用Ant和Android SDK呢? 问题答案: 假设您没有使用: 步骤1:将SDK 复制或从SDK 复制到项目目录中。 步骤2:没有步骤2。 选择是否要使用本机
问题内容: 我继承了一个当前在eclipse中构建的Web项目(Servlets)。 我想在它周围添加行家。但是项目的源目录未遵循maven约定。而不是在src / main / java内部,而是src / package / name / … 我现在不想更改任何内容,因为它们正在全速朝着一个里程碑迈进。我可以配置maven接受src /作为java源目录吗?谢谢 问题答案: 只需在本节中将其添
我有一个项目,它不是spring应用程序。我正在尝试在其中使用AspectJ注释。注释类是从我的另一个jar中引用的。我在下面提到了POM的插件部分。我的构建成功了,但是Maven的控制台输出从来没有提到任何关于AspectJ插件的内容,而且当我运行我的项目时,注释也不起作用。 我几个小时来一直想弄清楚出了什么问题,但还是搞不清楚。 这是Jar中定义的两个依赖项,我试图将它用作方面库。 [DEBU
我们面临的最大问题是,我们无法找出如何构造项目C,以使其在项目A和B中都能正常工作。在项目A中,我们希望maven能像往常一样工作,并根据需要降低依赖项。但我们也希望在项目B(也许结合Nexus+Tycho??)中实现该功能。 我们应该如何解决这个问题。我还没有找到一个好的解决办法如何做这件事。我已经在maven中尝试了apache felix捆绑插件,但不能让它像我想要的那样工作。这是正确的解决
我读过一些教程, https://spring.io/guides/gs/spring-boot/ https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-gradle-plugin