Hello,
my attempts to deploy an AXOIM-service with proprietary WSDL/XSD
cause an internal error:
SEVERE: Allocate exception for servlet AxisAdminServlet
java.lang.ClassNotFoundException: org.apache.axiom.om.OMContainer
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at
org.apache.axis2.engine.DependencyManager.initService(DependencyManager.java:128)
at
org.apache.axis2.context.ConfigurationContextFactory.initApplicationScopeServices(ConfigurationContextFactory.java:102)
at
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:86)
at
org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:516)
at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:436)
at
org.apache.axis2.transport.http.AxisAdminServlet.init(AxisAdminServlet.java:55)
The administrative Axis2 pages are broken and no services are served.
Suprisingly, when the same erroneous service is uploaded via the admin
page all seems fine, the external WSDL and XSD resources are avaliable.
But any operation request generates the same error:
java.lang.NoClassDefFoundError: org/apache/axiom/om/OMContainer
Could you please give me an advice how to fix this strange problem ?
Many thanks
Jaro
Setup:
- Axis2 1.4.1, Tomcat 6.0, linux
- services.xml:
<service name="EduInformationService" scope="application">
<description>
EduInformationService
</description>
<parameter name="ServiceClass">my.test.EduInformationService</parameter>
<parameter name="useOrignalWSDL">true</parameter>
<operation name="getSubjects">
<messageReceiver
class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
</operation>
</service>
- my.test.EduInformationService.java snippet:
public class EduInformationService {
public OMElement getSubjects(OMElement element) throws XMLStreamException
{
...
}
}
- WSDL and XSD:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions name="MyTest"
xmlns:data="http://my.test/EduInformation/Data"
xmlns:tns="http://my.test/EduInformation/Service"
targetNamespace="http://my.test/EduInformation/Service"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/">
<wsdl:types>
<xsd:schema>
<xsd:import namespace="http://my.test/EduInformation/Data"
schemaLocation="EduInformation.xsd" />
</xsd:schema>
</wsdl:types>
<wsdl:message name="getSubjectsRequest">
<wsdl:part element="data:getSubjects" name="parameters" />
</wsdl:message>
<wsdl:message name="getSubjectsResponse">
<wsdl:part element="data:getSubjectsResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="getSubjectsForTutorRequest">
<wsdl:part element="data:getSubjectsForTutor" name="parameters" />
</wsdl:message>
<wsdl:message name="getSubjectsForTutorResponse">
<wsdl:part element="data:getSubjectsForTutorResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="getSubjectsForStudentRequest">
<wsdl:part element="data:getSubjectsForStudent" name="parameters" />
</wsdl:message>
<wsdl:message name="getSubjectsForStudentResponse">
<wsdl:part element="data:getSubjectsForStudentResponse"
name="parameters" />
</wsdl:message>
<wsdl:message name="getTutorsRequest">
<wsdl:part element="data:getTutors" name="parameters" />
</wsdl:message>
<wsdl:message name="getTutorsResponse">
<wsdl:part element="data:getTutorsResponse" name="parameters" />
</wsdl:message>
<wsdl:message name="getTutorsForSubjectRequest">
<wsdl:part element="data:getTutorsForSubject" name="parameters" />
</wsdl:message>
<wsdl:message name="getTutorsForSubjectResponse">
<wsdl:part element="data:getTutorsForSubjectResponse" name="parameters" />
</wsdl:message>
<wsdl:portType name="EduInformationInterface">
<wsdl:operation name="getSubjects">
<wsdl:input message="tns:getSubjectsRequest" />
<wsdl:output message="tns:getSubjectsResponse" />
</wsdl:operation>
<wsdl:operation name="getSubjectsForTutor">
<wsdl:input message="tns:getSubjectsForTutorRequest" />
<wsdl:output message="tns:getSubjectsForTutorResponse" />
</wsdl:operation>
<wsdl:operation name="getSubjectsForStudent">
<wsdl:input message="tns:getSubjectsForStudentRequest" />
<wsdl:output message="tns:getSubjectsForStudentResponse" />
</wsdl:operation>
<wsdl:operation name="getTutors">
<wsdl:input message="tns:getTutorsRequest" />
<wsdl:output message="tns:getTutorsResponse" />
</wsdl:operation>
<wsdl:operation name="getTutorsForSubject">
<wsdl:input message="tns:getTutorsForSubjectRequest" />
<wsdl:output message="tns:getTutorsForSubjectResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="EduInformationInterfaceSOAPBinding"
type="tns:EduInformationInterface">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="getSubjects">
<soap:operation soapAction="urn:getSubjects" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getSubjectsForTutor">
<soap:operation soapAction="urn:getSubjectsForTutor" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getSubjectsForStudent">
<soap:operation soapAction="urn:getSubjectsForStudent" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTutors">
<soap:operation soapAction="urn:getTutors" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getTutorsForSubject">
<soap:operation soapAction="urn:getTutorsForSubject" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="EduInformationService">
<wsdl:port binding="tns:EduInformationInterfaceSOAPBinding"
name="EduInformationInterfaceSOAP">
<soap:address
location="http://localhost:8080/axis2/services/EduInformationService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="my.test/EduInformation/Data"
xmlns:tns="my.test/EduInformation/Data"
elementFormDefault="qualified" attributeFormDefault="qualified">
<!-- Parameter elements and types -->
<xsd:group name="Identifiable">
<xsd:annotation>
<xsd:documentation>A named entity identifiable by its ID in respect to a
context.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="id" type="xsd:string" />
<xsd:element name="name" type="xsd:string" />
</xsd:sequence>
</xsd:group>
<xsd:complexType name="TutoringActor">
<xsd:annotation>
<xsd:documentation>A person (student, tutor etc.) taking part in the tutoring
process.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="tns:Identifiable" />
<xsd:element name="eduInstId" type="xsd:string" />
<xsd:element name="subjects" type="tns:Subjects" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="student" type="tns:TutoringActor" />
<xsd:element name="tutor" type="tns:TutoringActor" />
<xsd:element name="eduInstitution">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="tns:Identifiable" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="subject">
<xsd:complexType>
<xsd:sequence>
<xsd:group ref="tns:Identifiable" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="Subjects">
<xsd:sequence>
<xsd:element ref="tns:subject" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Tutors">
<xsd:sequence>
<xsd:element ref="tns:tutor" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<!-- Message elements -->
<xsd:complexType name="EduInformationRequest">
<xsd:sequence>
<xsd:element name="eduInstId" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TutoringActorRequest">
<xsd:sequence>
<xsd:element name="eduInstId" type="xsd:string" />
<xsd:element name="tutoringActorId" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getSubjects" type="tns:EduInformationRequest" />
<xsd:element name="getSubjectsResponse" type="tns:Subjects" />
<xsd:element name="getSubjectsForTutor" type="tns:TutoringActorRequest" />
<xsd:element name="getSubjectsForTutorResponse" type="tns:Subjects" />
<xsd:element name="getSubjectsForStudent" type="tns:TutoringActorRequest" />
<xsd:element name="getSubjectsForStudentResponse" type="tns:Subjects" />
<xsd:element name="getTutors" type="tns:EduInformationRequest" />
<xsd:element name="getTutorsResponse" type="tns:Tutors" />
<xsd:element name="getTutorsForSubject">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="eduInstId" type="xsd:string" />
<xsd:element name="subjectId" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getTutorsForSubjectResponse" type="tns:Tutors" />
</xsd:schema>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]