Reputation: 1
I'm trying to use axis 1.4 on turnkey linux tomcat6 appliance.
Short version is that assuming it's the root of the problem; what is the correct way to set AXISCLASSPATH on debian?
Long version is:
axis.war deploys correctly. I've added AXIS_HOME and AXIS_LIB to etc/environment like so:
CATALINA_HOME="/usr/share/tomcat6"
CATALINA_BASE="/var/lib/tomcat6"
CATALINA_OPTS="-server -Xms384M -Xmx512M -XX:MaxPermSize=256M"
JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.26"
AXIS_HOME="/var/lib/tomcat6/webapps/axis"
AXIS_LIB="/var/lib/tomcat6/webapps/axis/WEB-INF/lib"
and all echo correctly. tomcat6 admin page shows axis running, /localhost/axis loads fine but happyaxis is kicking:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /happyaxis.jsp at line 45
42: */ 43: Class classExists(String classname) { 44:
try { 45: return Class.forName(classname); 46: } catch (ClassNotFoundException e) { 47: return null; 48:
}Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
javax.servlet.ServletException: java.lang.UnsupportedClassVersionError: com/ibm/wsdl/factory/WSDLFactoryImpl : Unsupported major.minor version 51.0 (unable to load class com.ibm.wsdl.factory.WSDLFactoryImpl) org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794) org.apache.jsp.happyaxis_jsp._jspService(happyaxis_jsp.java:808) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.UnsupportedClassVersionError: com/ibm/wsdl/factory/WSDLFactoryImpl : Unsupported major.minor version 51.0 (unable to load class com.ibm.wsdl.factory.WSDLFactoryImpl) org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2822) org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66) java.lang.Class.forName0(Native Method) java.lang.Class.forName(Class.java:169) org.apache.jsp.happyaxis_jsp.classExists(happyaxis_jsp.java:34) org.apache.jsp.happyaxis_jsp.probeClass(happyaxis_jsp.java:77) org.apache.jsp.happyaxis_jsp.needClass(happyaxis_jsp.java:151) org.apache.jsp.happyaxis_jsp._jspService(happyaxis_jsp.java:650) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
I have used axis in the past on ubuntu and had issues with openjdk. So I tried removing openjdk and installed sun-java-6 and get the same error.
According to every bit of documentation I've seen, $AXISCLASSPATH needs to point to the axis/lib .jar files and may be the issue but the apache documentation is very old:
Unix users have to do something similar. Below we have installed AXIS into /usr/axis and are using the bash shell. See your shell's documentation for differences. To make variables permeate you will need to add them to your shell's startup (dot) files. Again, see your shell's documentation.
set AXIS_HOME=/usr/axis set AXIS_LIB=$AXIS_HOME/lib set AXISCLASSPATH=$AXIS_LIB/axis.jar:$AXIS_LIB/commons-discovery.jar: $AXIS_LIB/commons-logging.jar:$AXIS_LIB/jaxrpc.jar:$AXIS_LIB/saaj.jar: $AXIS_LIB/log4j-1.2.8.jar:$AXIS_LIB/xml-apis.jar:$AXIS_LIB/xercesImpl.jar export AXIS_HOME; export AXIS_LIB; export AXISCLASSPATH
when I deploy, xercesImpl.jar is not present in the lib director and log4-1.2.8.jar is just log4j.jar
I copied xercesImpl from elsewhere in the file system and after an exhaustive search I have tried setting this variable from the command line, etc/environment, tomcat6.sh and a few others, all without success.
The only method I found that will echo correctly was with the command line code:
export AXISCLASSPATH:$AXIS_LIB/axis.jar;$AXIS_LIB/commons-discover.jar;$AXIS_LIB/commons-logging.jar;$AXIS_LIB/jaxrpc.jar;$AXIS_LIB/saaj.jar;$AXIS_LIB/log4j.jar
still no change. as a stab in the dark I copied wsdl4j.jar from elsewhere on the filesystem to /lib and added it to the above export command and still no joy
Upvotes: 0
Views: 523
Reputation: 13460
"Unsupported major.minor version 51.0 " means "JVM version too low; 51== Java7".
Steve
(who wrote happyaxis.jsp 10 years ago)
Upvotes: 0