invalid JChemWebServices.aar service

User e34a92cce5

24-10-2011 20:31:08

Hi,


I recently updated JChemWebservices from 5.3.1 to 5.5 and am running Tomcat on port 8081. On restart I am getting the following error:


INFO: validateJarFile(/var/www/JChemWebServices/tomcat/webapps/axis2/WEB-INF/lib/servlet-api-2.3.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
[INFO] Deploying module: soapmonitor-1.4 - file:/var/www/JChemWebServices/tomcat/webapps/axis2/WEB-INF/modules/soapmonitor-1.4.mar
[INFO] Deploying module: script-1.4 - file:/var/www/JChemWebServices/tomcat/webapps/axis2/WEB-INF/modules/axis2-scripting-1.4.mar
[INFO] Deploying module: ping-1.4 - file:/var/www/JChemWebServices/tomcat/webapps/axis2/WEB-INF/modules/ping-1.4.mar
[INFO] Deploying module: metadataExchange-1.4 - file:/var/www/JChemWebServices/tomcat/webapps/axis2/WEB-INF/modules/mex-1.4.mar
[INFO] Deploying module: addressing-1.4 - file:/var/www/JChemWebServices/tomcat/webapps/axis2/WEB-INF/modules/addressing-1.4.mar
[INFO] Deploying module: metadataExchange - file:/var/www/JChemWebServices/tomcat/webapps/axis2/WEB-INF/lib/mex-1.4-impl.jar
[INFO] The JChemWebServices.aar service, which is not valid, caused java.lang.UnsupportedClassVersionError: Bad version number in .class file
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at org.apache.axis2.deployment.DeploymentClassLoader.findClass(DeploymentClassLoader.java:72)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:242)
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.<init>(DefaultSchemaGenerator.java:157)
    at org.apache.axis2.deployment.util.Utils.fillAxisService(Utils.java:523)
    at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:386)
    at org.apache.axis2.deployment.ServiceGroupBuilder.populateServiceGroup(ServiceGroupBuilder.java:101)
    at org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:110)
    at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:144)
    at org.apache.axis2.deployment.ServiceDeployer.deploy(ServiceDeployer.java:81)
    at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)
    at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:597)
    at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144)
    at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:330)
    at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:227)
    at org.apache.axis2.deployment.DeploymentEngine.loadServices(DeploymentEngine.java:131)
    at org.apache.axis2.deployment.WarBasedAxisConfigurator.loadServices(WarBasedAxisConfigurator.java:284)
    at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:82)
    at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:511)
    at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:431)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
    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:585)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)



User c1ce6b3d19

26-10-2011 01:32:36

Renju,


This might be because of strange JVMs you are using.  


Can you give us more information about your setup?  What Java version are you running?  


Are you running the aar from the bundled Tomcat or your own Tomcat server?


 


Jon

User e34a92cce5

26-10-2011 03:46:13

java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-51)


I am running the aar which came in bundled with the Tomcat server. Before updating to 5.5, I had completely deleted teverything under the jchemwebservices directory and followed the instructions to install the new version. So \jchemwebservices\bin and \jchemwebservices\tomcat\bin have execute permissions and the startup.sh is as follows:


#!/bin/sh

JAVA_HOME=/opt/app/oracle/product/11.2.0/dbhome_1/jdk
export JAVA_HOME
JAVA_OPTS='-Xmx256M'
export JAVA_OPTS
CATALINA_HOME=../tomcat
export CATALINA_HOME

${CATALINA_HOME}/bin/startup.sh $1
exit

User c1ce6b3d19

26-10-2011 11:45:14

Renju,


Try updating to a newer version of Oracle's Java.  I might be wrong, but JChem 5.5 should use Java 1.5 or later.  


http://www.oracle.com/technetwork/indexes/downloads/index.html


 


Jon

User e34a92cce5

26-10-2011 19:14:57

I updated Java to 1.6 and and able to get Axis to load all services. However I am now running into this error, which looks like an Oracle table access error even though I can access the tables just fine using jcman with the same credentials. My jcman and web services are both on 5.5


[ERROR] ORA-00942: table or view does not exist

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:194)
    at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102)
    at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
    at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
    at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:131)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at chemaxon.jchem.webservice.Headers.doFilter(Headers.java:31)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)

User c1ce6b3d19

27-10-2011 11:35:27

Renju,


Are you trying to run the Ajax example or calling a specific Web Service Method?  Can you give us more details or a code snippet?


 


Normally this error occurs when the table or view name is incorrect or the view has been omitted. 


 


Jon

User e34a92cce5

27-10-2011 13:30:33

I am getting this same 'table/view not found' error while running the ajax example and while making soap calls from php.

User c1ce6b3d19

27-10-2011 15:02:22

Renju,


Thanks for the information. A few more questions:


What version of Oracle are you using?


Can you include a code snippet of the php code calling the web service?


 


Thanks,


Jon

User e34a92cce5

27-10-2011 15:51:32

Here is a code snippet:


 


$jchem_wsdl = "http://localhost:8180/axis2/services/JChemSearchWS?wsdl";

$wsdl_conn_param = array('driver' => 'oracle.jdbc.driver.OracleDriver',
                    'url' => 'jdbc:oracle:thin:@localhost:1521:erebor',
                    'username' => $ora_user, 'password' => $ora_pw,
                    'propertyTable' => 'JChemProperties');

//Get the full structure table names using the JChem WSDL
$soap = new SoapClient($jchem_wsdl);
$conn_param = $wsdl_conn_param;

//GET THE STRUCTURE TABLE NAMES FROM THE JCHEM PROPERTIES TABLE AS IS
try
    {

    $str_tables_xml = $soap->getConnectionAndTableInfo($conn_param);
    //var_dump($str_tables_xml->return);
    $xml_tables = simplexml_load_string($str_tables_xml->return);

    $conn_handler_id = $xml_tables->ConnectionHandlerId;

    foreach($xml_tables->Tables as $table_array)
        {

        foreach($table_array as $row_array)
            {
            $structure_tables[] = $row_array->TableName;
            }


        }

    }
catch (SoapFault $fault)
    {
        trigger_error("SOAP Fault: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
    }




As I mentioned earlier, I don;t think it is the code itself since this was working fine before the upgrade to 5.5; The built in Ajax example gives the same error

User e34a92cce5

27-10-2011 18:52:49

I was able to get rid of the table/view not found error by shutting down Tomcat and regenerating the tables and then restarting Tomcat.Thanks for your help in troubleshooting, Jon.


Renju