Search code examples
javawebspherejpa-2.0openjpaload-time-weaving

Where is the openjpa jar used as a -javaagent for websphere 8 applications located?


Or do i have to provide my own? I want to provided load-time JPA entity enhancement following the documentation here:

java -javaagent:path/to/openjpa.jar com.xyz.Main

i want to find path/to/. Am I on the right track? Is this why my entities are not enhancing?

UPDATE:

I think I may have come across the file: C:/<websphere-install>/plugins/com.ibm.ws.jpa.jar however when i attempt to start up websphere with -javaagent:"C:\Program Files (x86)\IBM\WebSphere\AppServer\plugins\com.ibm.ws.jpa.jar" in the settings, the server fails to start up:

Error opening zip file or JAR manifest missing : "C:\Program
JVMJ9VM015W Initialization error for library j9jvmti26(-3): JVMJ9VM009E J9VMDllMain failed

It can't recognize the spaces for some reason. I have read that

These values [jvm args] must be encoded, which requires that any spaces in the file paths should be replaced with %20. For example, C:\Program Files would become C:\Program%20Files. If the JVM argument values are entered incorrectly, the WebSphere Application Server will not start.

however applying this change only gives me an error message with the %20s in the path:

Error opening zip file or JAR manifest missing : "C:/Program%20Files%20(x86)/IBM/WebSphere/AppServer/plugins/com.ibm.ws.jpa.jar"
JVMJ9VM015W Initialization error for library j9jvmti26(-3): JVMJ9VM009E J9VMDllMain failed

Solution

  • You don't need to use the -javaagent in WebSphere. WebSphere provides hooks to OpenJPA so that it can enhance without the agent.

    The real problem you need to figure out is your Spring + WAS + OpenJPA question.