我正在按照this excellent tutorial了解Java EE,Glassfish和EJB。
我被困在第9.i节。我收到了作者提到的java.lang.reflect.InvocationTargetException错误,并做了同样的修复。但是,我仍然得到同样的错误,我一直在寻找答案已有一段时间了。这是我试过的。
的persistence.xml
<?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="cookbookEJB">
<jta-data-source>jdbc/cookbook</jta-data-source>
<class>com.davidlacerte.cookbook.entity.City</class>
<class>com.davidlacerte.cookbook.entity.Country</class>
<properties>
<property name="eclipselink.logging.level" value="FINE"/>
</properties>
</persistence-unit>
</persistence>
我的Glassfish安装确实有一个jdbc / cookbook JDBC资源。现在,我添加了以下代码,因为Glassfish堆栈跟踪不太有用:
@Override
public long countryCount() {
try
{
return eao.countCountries();
}
catch(Exception e)
{
Throwable t = e.getCause();
while(t != null)
{
System.out.println(t.getMessage());
t = t.getCause();
}
}
return -1;
}
这是输出:
INFO: Exception thrown from bean: java.lang.VerifyError: Expecting a stackmap frame at branch target 16 in method com.davidlacerte.cookbook.entity.City._persistence_checkFetched(Ljava/lang/String;)V at offset 5
INFO: Expecting a stackmap frame at branch target 16 in method com.davidlacerte.cookbook.entity.City._persistence_checkFetched(Ljava/lang/String;)V at offset 5
我用Google搜索了“除了堆栈图框...”错误,许多博客建议在我的虚拟机参数中添加-XX:-UseSplitVerifier
参数:我做了,没有运气。
所以,这就是我所知道的,而且我现在所做的一切。正如我所说,我对EJB和Glassfish了解不多,所以如果你需要更多信息,请问。我在这里有点生气。
编辑:只需重新阅读服务器日志即可找到:
WARNING: Container org.glassfish.webservices.JAXWSContainer@3dbfc326 doesn't support class com.sun.xml.ws.api.server.Module
感谢您的帮助。
答案 0 :(得分:0)
好的,我讨厌这个,但我降级到1.6 JDK,它的工作完美。由于缺乏更好的解决方案(我更喜欢运行最新和最好的解决方案),请使用1.6版本。