0

この優れたチュートリアルに従って、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 /cookbookJDBCリソースがあります。ここで、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:-UseSplitVerifierVM引数にパラメーターを追加することを提案しました。

だから、それは私が知っているすべてであり、私が今のところ試したすべてです。私が言ったように、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 に答える