Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

OSB: class not found in custom xpath function

Hi,

This week I was struggling with custom xpath functions in OSB. First I created a jar file that contained the class and the complete functionality including logging. It contains a class that does a DVM Lookup from the database. As a standalone function, called from JUnit test cases it functions perfectly. I use Apache commons logging with the libraries from the Weblogic installation.

But when I put this OSB Util Services jar in the osb-home/config/xpath-function, it turns out that somehow the Weblogic Console gets a conflict with the commons-logging libraries. So I deployed it just as an application library in weblogic console, to solve this breakage.

Then I created a simple separate class that only calls the method in the deployed library. I packaged that as a custom-osb-functions.jar for the osb-home/config/xpath-function. I managed to get if visible in OEPE. But when I test the xquery transformation resource on the server, I get:

Error executing the XQuery transformation: {http://www.bea.com/wli/common/xquery}XQueryException: Error invoking custom xquery java function: java.lang.reflect.InvocationTargetException

java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at com.bea.wli.sb.stages.functions.XQueryExternalFunction.execute(XQueryExternalFunction.java:111)

at com.bea.wli.sb.stages.functions.XQueryExternalFunction.init(XQueryExternalFunction.java:61)

at weblogic.xml.query.iterators.FirstOrderIterator.open(FirstOrderIterator.java:169)

at weblogic.xml.query.runtime.typing.SeqTypeMatching.open(SeqTypeMatching.java:129)

at weblogic.xml.query.iterators.FirstOrderIterator.open(FirstOrderIterator.java:167)

at weblogic.xml.query.runtime.core.ExecutionWrapper.open(ExecutionWrapper.java:58)

at com.bea.wli.common.xquery.iterators.XQueryVariableMapper.getObjects(XQueryVariableMapper.java:459)

at com.bea.wli.common.xquery.iterators.XQueryVariableMapper.getObjects(XQueryVariableMapper.java:447)

at com.bea.wli.sb.test.transform.XQueryProcessor.invoke(XQueryProcessor.java:165)

at com.bea.wli.sb.test.TestServiceImpl.invoke(TestServiceImpl.java:172)

at com.bea.wli.sb.test.client.ejb.TestServiceEJBBean.invoke(TestServiceEJBBean.java:167)

at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl.__WL_invoke(Unknown Source)

at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)

at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl.invoke(Unknown Source)

at com.bea.wli.sb.test.client.ejb.TestService_sqr59p_EOImpl_WLSkel.invoke(Unknown Source)

at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)

at weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)

at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)

at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)

at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)

at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)

at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)

at weblogic.work.ExecuteThread.execute(ExecuteThread.java:252)

at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

Caused by: java.lang.NoClassDefFoundError: nl/darwin-it/osb/dvm/DomainValueMap

at nl.darwin-it.osb.xpath.DomainValueMapLookup.lookupDVM(DomainValueMapLookup.java:35)

... 28 more

Caused by: java.lang.ClassNotFoundException: nl.darwin-it.osb.dvm.DomainValueMap

at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)

at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)

... 29 more

Can any one explain to me how I can get the OSB Util Services jar library in the same classpath as the custom-xpath-functions jar, without having it put along the custom-xpath-functions jar in the osb-home/config/xpath-functions folder (since that somehow breaks the weblogic console)?

How does the OSB classpath/classloading mechanisms work in this?

Thanks in advance,

Regards,
Martien

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jul 11 2013
Added on Jun 13 2013
0 comments
1,656 views