0

我正在按照这个优秀的教程学习 Java EE、Glassfish 和 EJB 。

我被困在第 9.i 节。我得到了作者提到的 java.lang.reflect.InvocationTargetException 错误,并做了与他相同的修复。但是,我仍然遇到同样的错误,并且我一直在寻找答案已经有一段时间了。这是我尝试过的。

持久性.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

我用谷歌搜索了“除了堆栈图框架...”错误,许多博客建议-XX:-UseSplitVerifier在我的 VM 参数中添加一个参数:我做到了,没有运气。

所以,这就是我所知道的以及我目前所尝试的全部。正如我所说,我对 EJB 和 Glassfish 了解不多,所以如果您需要更多信息,请询问。我有点生气,在这里。

编辑:只需重新阅读服务器日志并发现:

WARNING: Container org.glassfish.webservices.JAXWSContainer@3dbfc326 doesn't support class com.sun.xml.ws.api.server.Module

谢谢您的帮助。

4

1 回答 1

0

好的,我讨厌这个,但我降级到 1.6 JDK 并且它运行良好。由于缺乏更好的解决方案(我更喜欢运行最新最好的),请使用 1.6 版本。

于 2012-07-24T15:52:26.450 回答