Author Message
CemilÞanlý
Joined: Dec 14, 2010
Messages: 3
Offline
Hello,

We tried to call web service in servlet in orchestra Desginer. But We get errors

We are using Axis2 client for calling web service. We create web service stub in servlet file. We added runtime support jar. lib/ext folder.

but when we called web service. Websphere load class from plugins/axis2.jar. It dosent use axis jar from ib/ext.

We user orchestra Designer 7.2
WebShpere 9.0
Axis 1.6.2

Webshpere has old version axis2 for Itself.


Does anyone have some probmles

java.lang.Exception: java.lang.NoSuchMethodError: org/apache/axiom/om/OMDocument.getXMLStreamReader(Z)Ljavax/xml/stream/XMLStreamReader; (loaded from file:[b]/opt/IBM/WebSphere/AppServer/plugins/org.apache.axis2.jar by org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@50c08615[org.apache.axis2:7.0.0(id=285)]) called from class connectivity.ws.beans.ZZCC_CALLCENTER_WEBSERVISStub (loaded from file:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/WASNONIZM1Cell01/Axis2Test.ear/Axis2Test.war/WEB-INF/lib/Axis2Test.jar by
com.ibm.ws.classloader.CompoundClassLoader@58c0a9a6[war:Axis2Test/Axis2Test.war]
Local ClassPath: /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/WASNONIZM1Cell01/Axis2Test.ear/Axis2Test.war/WEB-INF/lib/avwsop2-rt-07.20.09.04.jar:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/WASNONIZM1Cell01/Axis2Test.ear/Axis2Test.war/WEB-INF/lib/scert-07.20.09.04.jar:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/WASNONIZM1Cell01/Axis2Test.ear/Axis2Test.war/WEB-INF/lib/Axis2Test.jar:/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/installedApps/WASNONIZM1Cell01/Axis2Test.ear/Axis2Test.war
Parent: com.ibm.ws.classloader.CompoundClassLoader@7143107[PF][app:Axis2Test]
Delegation Mode: PARENT_FIRST).

RossYakulis
Joined: Nov 6, 2013
Messages: 2652
Offline
I believe it is a WAS setting. Search the forum for a possible answer.
IvanFontalvo
Joined: Mar 22, 2012
Messages: 61
Offline
HI ,

when you created a client with java, you need to use another lib addtional to axis2 or axis , in this case you need to add the following to your lib in the webServe :


  • axiom-api

  • axiom-dom

  • axiom-impl
  • in the version that have in your local enviroment.

    maybe you have to add neethi too.

    CemilÞanlý
    Joined: Dec 14, 2010
    Messages: 3
    Offline
    Thank you Ivan,

    We put axiom jars in lib/ext. Result is same. You mean we put them web shpere plugins directory? But this directory for webshepere. When we put them in our app lib. this We get "java.lang.VerifyError: JVMVRFY013 class loading constraint violated;" error.
    IvanFontalvo
    Joined: Mar 22, 2012
    Messages: 61
    Offline
    Hi Cemil,

    for webShepre follows next steps and recomendation, you can fin this in the OD dev_guide :

    Performing additional WebSphere configuration
    About this task
    For WebSphere 7.0 and later, the Axis2 library files provided by Orchestration Designer conflicts
    with the Axis2 library files from WebSphere installation. Therefore, you must configure a separate
    class loader for Orchestration Designer applications to use Axis2 library effectively.
    Perform the following steps for the additional WebSphere configuration:
    Procedure
    1. Open the WebSphere Administrative Console.
    2. On the Environment menu, click Shared libraries and create a shared library.
    3. Copy the following entries into the Classpath field:
    ${WAS_INSTALL_ROOT}/lib/ext/axiom-api-1.2.13.jar
    ${WAS_INSTALL_ROOT}/lib/ext/axiom-dom-1.2.13.jar
    ${WAS_INSTALL_ROOT}/lib/ext/axiom-impl-1.2.13.jar
    ${WAS_INSTALL_ROOT}/lib/ext/axis2-adb-1.6.2.jar
    ${WAS_INSTALL_ROOT}/lib/ext/axis2-adb-codegen-1.6.2.jar
    ${WAS_INSTALL_ROOT}/lib/ext/axis2-json-1.6.2.jar
    ${WAS_INSTALL_ROOT}/lib/ext/axis2-kernel-1.6.2.jar
    ${WAS_INSTALL_ROOT}/lib/ext/axis2-saaj-1.6.2.jar
    ${WAS_INSTALL_ROOT}/lib/ext/axis2-transport-http-1.6.2.jar
    ${WAS_INSTALL_ROOT}/lib/ext/axis2-transport-local-1.6.2.jar
    ${WAS_INSTALL_ROOT}/lib/ext/neethi-3.0.2.jar
    ${WAS_INSTALL_ROOT}/lib/ext/woden-api-1.0M9.jar
    ${WAS_INSTALL_ROOT}/lib/ext/woden-impl-dom-1.0M9.jar
    ${WAS_INSTALL_ROOT}/lib/ext/woden-tool-1.0M9.jar
    ${WAS_INSTALL_ROOT}/lib/ext/XmlSchema-1.4.7.jar
    ${WAS_INSTALL_ROOT}/lib/ext/VPWebServiceClient-<version>.jar
    ${WAS_INSTALL_ROOT}/lib/ext/VPAppLogClientWS_<version>.jar
    You must modify the version for VPWebServiceClient -<version>.jar according to
    the file deployed in the lib or ext directory.
    4. Click Servers > Server Types > WebSphere application servers to navigate to the server
    configuration page.
    5. From the server list, select the server that you want to associate with the shared library.
    6. Click Java and Process Management in Server Infrastructure section, and click the Class
    Loader link.
    7. Create a new class loader, and set the class loader order to Classes loaded with local
    class loader first (parent last). Click OK.
    8. Select the newly create class loader.
    9. On the Configuration page, click the Shared library references link.
    10. On the Configuration page, ensure that the shared library you created is selected.
    11. Click OK to save the configuration.
    12. Make sure you verify all the configuration has been saved, and restart the application server.


    best regards
    CemilÞanlý
    Joined: Dec 14, 2010
    Messages: 3
    Offline
    hi Ivan,
    thank you. Yes. We found the same solution. We have many runtime .jar. So We need to add all run time jars in this shared library. this solution is not very effective for us.

    Our architecture like this . we have base speech application. if application need to web service call. app load run time web service client.jar with app classloader. and then run it

    firstly we think only add all axis jar in shared library. We dont want to add our runtime web service client jar in shared library.

    but it is runtime. Our client's classloader look firstly webshpere osi plugin classloader.

    we didnt solve this problem. I am looking about web sphere classloader type. We tought firstly all runtime class in speech app will use axis share libs. But run time classes used webshpere osi plugin classloader.

    We will search websphere classloder arc. or we will add all run time jars in shared lib.

    thank you for your help.

    Go to:   
    Mobile view