尝试在ejb3上编写netbeans8 junit,我们使用WebLogic12c,但是我无法获得它们的嵌入式容器,所以放弃了,尝试了glassfish
它更进一步,但是bizzar有一件事,即使我的持久性xml使用oracle设置,它会触发derby,并且说我的模式/表不在那里。
我是,不是试着用德比
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="ACP-warPU" transaction-type="JTA"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <exclude-unlisted-classes>false</exclude-unlisted-classes> <shared-cache-mode>ALL</shared-cache-mode> <properties> <property name="eclipselink.logging.level" value="FINE"/> <property name="eclipselink.logging.logger" value="ServerLogger"/> <property name="javax.persistence.jdbc.url" value="jdbc:oracle:thin:@localhost:1521:db11g"/> <property name="javax.persistence.jdbc.password" value="spa"/> <property name="javax.persistence.jdbc.driver" value="oracle.jdbc.OracleDriver"/> <property name="javax.persistence.jdbc.user" value="spa"/> </properties> </persistence-unit> </persistence>
Map<String, Object> p = new HashMap<String, Object>();
File[] modules = {
new File("target/test-classes"),
new File("target/classes")
};
p.put(EJBContainer.MODULES, modules);
p.put("org.glassfish.ejb.embedded.glassfish.installation.root", "/target/gfv3");
ejbContainer = EJBContainer.createEJBContainer(p);
ctx = ejbContainer.getContext();
ejbFacade = (AllocnGrpFacade) ctx.lookup("java:global/classes/AllocnGrpFacade");
Caused by: ERROR 42Y07: Schema 'SPA' does not exist
at org.apache.derby.iapi.error.StandardException.newException(Unknown Source)
at org.apache.derby.impl.sql.catalog.DataDictionaryImpl.getSchemaDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.QueryTreeNode.getSchemaDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.QueryTreeNode.getSchemaDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(Unknown Source)
at org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(Unknown Source)
at org.apache.derby.impl.sql.compile.FromList.bindTables(Unknown Source)
at org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(Unknown Source)
at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(Unknown Source)
at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source)
at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source)
at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source)发布于 2014-04-11 19:14:17
基本上,即使对于嵌入式容器,您也需要安装glassfish域。
我希望我可以用代码来完成这个任务,而不是使用生成的垃圾,但是现在我就是这样做的。
解见
https://stackoverflow.com/questions/23016592
复制相似问题