I’m in the process of learning about Java EE, Glassfish and EJBs by following this excellent tutorial.
I’m stuck at section 9.i . I got the java.lang.reflect.InvocationTargetException error the author mentioned and did the same fixes he did. However, I still get the same error and I’ve been looking for an answer for quite some time now. Here’s what I tried.
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>
My Glassfish install does have a jdbc/cookbook JDBC resource. Now, I added the following code because the Glassfish stack trace was less than helpful:
@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;
}
Here’s the output:
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
I googled the “Excepting a stackmap frame…” error, many blogs suggested adding a -XX:-UseSplitVerifier parameter to my VM arguments : I did, no luck.
So, that’s all I know and all I’ve tried for now. As I said I don’t know much about EJB and Glassfish so if you need more info, just ask. I’m going slightly mad, here.
EDIT : just re-read the server log and found this :
WARNING: Container org.glassfish.webservices.JAXWSContainer@3dbfc326 doesn't support class com.sun.xml.ws.api.server.Module
Thank you for your help.
Okay I hate this but I downgraded to the 1.6 JDK and it’s working perfectly. For lack of a better solution (I prefer running the latest and greatest), use the 1.6 version.