Bonjour
J'ai besoin de créer un webservice sous axis2.
J'ai commencé par le coder :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
package test;
 
public class Service {
 
    public void test1() throws Exception1{
        throw new Exception1("message de test", 99);
    }
 
}
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
package test;
 
public class Exception1 extends Exception {
    int intTest;
    public Exception1(String msg, int intTest) {
        super(msg);
        this.intTest = intTest;
    }
}
Pour générer l'aar j'utilise un plugin maven2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<plugin>
     <groupId>org.apache.axis2</groupId>
     <artifactId>axis2-aar-maven-plugin</artifactId>
     <version>1.4</version>
     <executions>
          <execution>
          <goals>
               <goal>aar</goal>
          </goals>
          <configuration
   <includeDependencies>true</includeDependencies>									     <wsdlFileName>service.wsdl</wsdlFileName>
               </configuration>
          </execution>
     </executions>
</plugin>
et voilà le services.xml associé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
<service name="TestWs">
	<description> Services Test</description>
	<parameter name="ServiceClass">test.Service</parameter>
	<parameter name="useOriginalwsdl">false</parameter>
	<messageReceivers>
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
			class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
			class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
	</messageReceivers>
</service>
La génération de l'aar se passe bien et j'arrive à la déployer sur mon axis2.

le problème c'est que le wsdl ne semble pas valide !
les exceptions semblent mal gérées. si bien que lorsque je génère mon stub (avec l'outils "new WebService Client" sous eclipse, il me génère la classe Exception1 dans un package test/wsd, et une Classe Exception1_Element qui agrège Exception1 sous test/
Sauf que le stub lui ne compile le stub sous /test lui a besoin d'une classe Exception1 dans la package /test


le wsdl sur lequel je n'ai gardé que le TestWsHttpSoap11Endpoint et TestWsSoap11Binding: (suppression du TestWsHttpSoap12Endpoint, TestWsHttpEndpoint, TestWsSoap12Binding, TestWsHttpBinding)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:ax21="http://test/xsd" xmlns:ns="http://test" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="http://test">
    <wsdl:documentation>TestWs</wsdl:documentation>
    <wsdl:types>
        <xs:schema xmlns:ax22="http://test" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://test/xsd">
            <xs:import namespace="http://test"/>
            <xs:complexType name="Exception1">
                <xs:complexContent>
                    <xs:extension base="ax22:Exception">
                        <xs:sequence/>
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
        </xs:schema>
        <xs:schema xmlns:ax23="http://test/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://test">
            <xs:import namespace="http://test/xsd"/>
            <xs:complexType name="Exception">
                <xs:sequence>
                    <xs:element minOccurs="0" name="Exception" nillable="true" type="xs:anyType"/>
                </xs:sequence>
            </xs:complexType>
            <xs:element name="Exception1">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="Exception1" nillable="true" type="ax21:Exception1"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="test1Request"/>
    <wsdl:message name="Exception1">
        <wsdl:part name="parameters" element="ns:Exception1"/>
    </wsdl:message>
    <wsdl:portType name="TestWsPortType">
        <wsdl:operation name="test1">
            <wsdl:input message="ns:test1Request" wsaw:Action="urn:test1"/>
            <wsdl:fault message="ns:Exception1" name="Exception1" wsaw:Action="urn:test1Exception1"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="TestWsSoap11Binding" type="ns:TestWsPortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
        <wsdl:operation name="test1">
            <soap:operation soapAction="urn:test1" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:fault name="Exception1">
                <soap:fault use="literal" name="Exception1"/>
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
 
 
    <wsdl:service name="TestWs">
        <wsdl:port name="TestWsHttpSoap11Endpoint" binding="ns:TestWsSoap11Binding">
            <soap:address location="http://localhost:8080/axis2/services/TestWs.TestWsHttpSoap11Endpoint/"/>
        </wsdl:port>
 
 
    </wsdl:service>
</wsdl:definitions>
quelqu'un a t'il déja rencontrer ce problème ?

par la suite j'ai modifié mon pom.xml pour générer moi même le wsdl:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
<plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifactId>axistools-maven-plugin</artifactId>
	<configuration>
		<filename>service.wsdl</filename>
		<classesDirectory>${project.build.directory}/classes
</classesDirectory>
		<outputImpl>service.wsdl</outputImpl>
		<namespace>http://test</namespace>
		<serviceElementName>testService</serviceElementName>
		<classOfPortType>test.Service</classOfPortType>
		<location>http://test/xsd</location>
		<typeMappingVersion>1.1</typeMappingVersion>
			<use>ENCODED</use>
			<style>LITERAL</style>
	</configuration>
	<executions>
		<execution>
			<goals>
				<goal>java2wsdl</goal>
			</goals>
		</execution>
	</executions>
	</plugin>
<plugin>
	<groupId>org.apache.axis2</groupId>
	<artifactId>axis2-aar-maven-plugin</artifactId>
	<version>1.4</version>
	<executions>
		<execution>
			<goals>
				<goal>aar</goal>
		</goals>
	<configuration>
						<includeDependencies>true</includeDependencies>
		<wsdlFile>target/generated-sources/axistools/java2wsdl/service.wsdl</wsdlFile>
		<wsdlFileName>service.wsdl</wsdlFileName>
	</configuration>
</execution>
</executions>
</plugin>
là le wsdl qui est générée dans target/generated-sources/axistools/java2wsdl/service.wsdl est correcte, mais lorsque je déploie l'aar axis2 n'en tient pas compte et regénère le même que précédement.

Peut être faut il jouer avec le Services.xml mais là je calle.

qq1 aurait il des billes? merci