hope someone went through this before and maybe have an answer already
There seems to be some changes in Java Open Client in 11.2 so it has to go through proxygen and rebuild the Java project afterwards, the doc for 11.2 say nothing about adding other jar files to classpath (http://documentation.progress.com/output/OpenEdge112/oe112html/wwhelp/wwhimpl/js/html/wwhelp.htm#href=Open%20Client/Java%20Open%20Clients/05dvjavch01cfg.30.2.html#637369)... still Java application complains about missing class: The type org.apache.tuscany.sdo.impl.DynamicDataObjectImpl cannot be resolved. It is indirectly referenced from required .class files
Adding tuscany-sdo-impl-1.1.1.jar from dlc/java/ext to classpath seems to solve the compile issue but seems that tuscany-sdo is set to make troubles, when running there are `class not found` exception thrown - Could not initialize class org.apache.tuscany.sdo.api.SDOUtil. I did added all those new tuscany-sdo jar files in classpath at runtime but there seems to be some other missing dependencies, anyone encountered this issue and maybe found a way to solve it?
The connection to the AppSrv works just fine, calling procedures on it with no dataset/temp-table works... the issue shows when some real data is needed
this is the actual error... and it happens when creating a new ProDataGraph using a prepared metadata
java.lang.NoClassDefFoundError: Could not initialize class org.apache.tuscany.sdo.api.SDOUtil
just in case someone else go that route before they get to update the documentation...
what need to be deployed as part of open client seems now to be this
/ext - common-2.2.3.jar - ecore-2.2.3.jar - ecore-xmi-2.2.3.jar - tuscany-sdo-api-r2.1-1.1.1.jar - tuscany-sdo-impl-1.1.1.jar - tuscany-sdo-lib-1.1.1 - xsd-2.2.3
I had the same type of error, trying to return a DataSet from the AppServer. I included the extra Progress .jar files your mentioned (and also added tuscany-sdo-tools-1.1.1.jar) - thanks for that!
Did adding these .jars solve your problem?
I still get an Open4GLException when calling the Procedure Object that is supposed to return the DataSet as a ProDataGraphHolder:
I did find org.apache.tuscany.sdo.api.SDOUtil in tuscany-sdo-lib-1.1.1.jar. So, if I added them to the classpath (and runtime path) correctly, it should work?
Nickols wrote:I had the same type of error, trying to return a DataSet from the AppServer. I included the extra Progress .jar files your mentioned (and also added tuscany-sdo-tools-1.1.1.jar) - thanks for that!
Thing is those are the only jar's you need to include... if still having the ones mentioned in the doc in the classpath it might not to work... depending on the order of the jar's in classpath, although classloader in java can be more complicated than that
With some help from my collegue Kenneth, we managed to solve my problem!
When I included the extra JARs from the OpenEdge installation folders, I had them in the wrong order in the Java Classpath. Being a OpenEdge developer and not seasoned with Java this very important aspect was lost to me.
I adjusted the Java Build Path (in my eclipse plugin project) to the following (in the correct order):
Now I just have to figure out how the Java Build Path relates to a plugin's bin.includes in the build.properties file and also the Bundle-ClassPath in the MANIFEST.MF file.
I seem to be having a similar issue on OpenEdge 11.3.
I have an open client that worked fine on OpenEdge 11.1, but after upgrading to 11.3 I can't get it to work anymore.
After regenerating with the proxy generator, and deploying the jars mentioned in your reply I still get the following error:
NativeException: java.lang.NoClassDefFoundError: org/eclipse/emf/ecore/xmi/XMLOptions
I'm running some rspec tests over jruby, hence the last two lines...
Any hints on what the problem could be?
This XMLOptions class is included in the ecore-xmi-2.2.3.jar file. Is your 11.3 classpath the same as in 11.1?
Using 11.3, i am also getting similar issue with the stack as,
Thread [Thread-0] (Suspended (exception ExceptionInInitializerError))
Unsafe.throwException(Throwable) line: not available [native method] [local variables unavailable]
Class<T>.newInstance0() line: 357
Class<T>.newInstance() line: 308
HelperProvider.loadImplementation(ClassLoader, String) line: 166
HelperProvider.getInstance(ClassLoader) line: 135
HelperProvider.<clinit>() line: 69
SDOUtil.<clinit>() line: 48
ProDataGraph.<init>(ProDataGraphMetaData) line: 141
damip.exec_oe_proc(StmtInfo) line: 1275
damip.build_result_rows(StmtInfo, int) line: 1393
damip.ipExecute(long, int, long, xo_int) line: 404
Do we have any suggestion to fix this in OE 11.3 environment?
Thanks and Regards,
With help from my collegue Devesh, I am able to resolve the below issue in my integrated environment.
"Could not initialize class org.apache.tuscany.sdo.api.SDOUtil "
For this, I have changed code as,
ClassLoader cl = Thread.currentThread().getContextClassLoader();
if (cl == null)
ClassLoader currentClassesLoader = getClass().getClassLoader();
newDG= new ProDataGraph(pStmtDA.mDataGraphMetaData);
catch (Throwable t)
jdam.trace(m_tmHandle, UL_TM_ERRORS, "exec_oe_proc() failed. Throwable :" + t.getMessage() + "\n");
jdam.dam_addError(0, pStmtDA.dam_hstmt, DAM_IP_ERROR, 0, t.getMessage() );
throw new Exception(t.getMessage());
The problem resolved after setting the currentThread's class loader.
Well, while it did worked at some point in 11.2 the fun is back on 11.3 upgrade... that open client thingy used to work flawlessly but lately it's like you guys got a special person in that works hard to trash it to the toilet :(
Input result set error: com.progress.open4gl.Open4GLException: java.util.Vector cannot be cast to java.util.GregorianCalendar (7176)
Get this on some cases where a dataset is returned, first though it's because of a date/datetime field defined in the dataset but in other cases it works just fine returning datasets with date/datetime fields so it must be something special.
I even regenerated the proxy classes (which can now only be done with java 1.7 which leads me to change the minimum version to 1.7 and recompile the whole app) but same result :(
Found a mention of the error number in this release note - knowledgebase.progress.com/.../000046467 but somehow it's not the same error, anyone else experiencing this or have managed to get java open client to work in 11.3?
I had previously entered doc issue PSC00287684 (back in January) that the Java Open Client doc was not updated with the new SDO jar files.
Also, Brian is correct in asking that you enter a bug for this particular issue and we will look into then.