この優れたチュートリアルに従って、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:-UseSplitVerifier
VM引数にパラメーターを追加することを提案しました。
だから、それは私が知っているすべてであり、私が今のところ試したすべてです。私が言ったように、EJBとGlassfishについてはあまり知らないので、さらに情報が必要な場合は、質問してください。ここで少し怒ってしまいます。
編集:サーバーログを再読み込みして、これを見つけました:
WARNING: Container org.glassfish.webservices.JAXWSContainer@3dbfc326 doesn't support class com.sun.xml.ws.api.server.Module
ご協力ありがとうございました。