You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@tuscany.apache.org by Peter Cousins <pc...@unica.com> on 2008/09/20 00:31:18 UTC

tuscany 1.3 wsdl2java doesn't support rpc-literal?

Was this intentional?  It worked in v1.2

Exception stack trace:

org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.NullPointerException
        at org.apache.tuscany.tools.wsdl2java.generate.JavaInterfaceGenerator.generate(JavaInterfaceGenerator.java:206)
        at org.apache.tuscany.tools.wsdl2java.generate.WSDL2JavaGenerator.generateFromWSDL(WSDL2JavaGenerator.java:245)
        at org.apache.tuscany.tools.wsdl2java.generate.WSDL2JavaGenerator.generateFromWSDL(WSDL2JavaGenerator.java:271)
        at org.apache.tuscany.tools.wsdl2java.plugin.WSDL2JavaGeneratorMojo.execute(WSDL2JavaGeneratorMojo.java:134)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:451)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:558)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:499)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:478)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:330)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:291)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:142)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:336)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:129)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:287)
        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.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: java.lang.NullPointerException
        at org.apache.tuscany.tools.wsdl2java.generate.JavaInterfaceEmitter.getParameterElementList(JavaInterfaceEmitter.java:68)
        at org.apache.tuscany.tools.wsdl2java.generate.JavaInterfaceEmitter.getElement(JavaInterfaceEmitter.java:156)
        at org.apache.tuscany.tools.wsdl2java.generate.JavaInterfaceEmitter.getInputElement(JavaInterfaceEmitter.java:133)
        at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.generateMethodElement(AxisServiceBasedMultiLanguageEmitter.java:2196)
        at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.loadOperations(AxisServiceBasedMultiLanguageEmitter.java:2122)
        at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.createDOMDocumentForInterface(AxisServiceBasedMultiLanguageEmitter.java:1205)
        at org.apache.tuscany.tools.wsdl2java.generate.JavaInterfaceEmitter.writeInterface(JavaInterfaceEmitter.java:172)
        at org.apache.tuscany.tools.wsdl2java.generate.JavaInterfaceGenerator.generate(JavaInterfaceGenerator.java:202)
        ... 21 more



To reproduce, change the helloworld.wsdl from doc/literal to rpc/literal, by changing the following two lines:
        <wsdl:part type="tns:hello" name="TestPart"/>
        <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

<?xml version="1.0" encoding="utf-8" ?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License.  You may obtain a copy of the License at
  ~
  ~    http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied.  See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<wsdl:definitions
    targetNamespace="http://tuscany.apache.org/implementation/bpel/example/helloworld.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://tuscany.apache.org/implementation/bpel/example/helloworld.wsdl"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
   >

    <wsdl:types>
        <schema elementFormDefault="qualified"
           targetNamespace="http://tuscany.apache.org/implementation/bpel/example/helloworld.wsdl"
           xmlns="http://www.w3.org/2001/XMLSchema">

            <element name="hello">
                <complexType>
                    <sequence>
                        <element name="message" type="xsd:string"/>
                    </sequence>
                </complexType>
            </element>
        </schema>
    </wsdl:types>

    <wsdl:message name="HelloMessage">
        <wsdl:part type="tns:hello" name="TestPart"/>
    </wsdl:message>

    <wsdl:portType name="HelloPortType">
        <wsdl:operation name="hello">
            <wsdl:input message="tns:HelloMessage" name="TestIn"/>
            <wsdl:output message="tns:HelloMessage" name="TestOut"/>
        </wsdl:operation>
    </wsdl:portType>


    <wsdl:binding name="HelloSoapBinding" type="tns:HelloPortType">
        <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="hello">
            <wsdlsoap:operation soapAction=""/>
            <wsdl:input name="TestIn">
                <wsdlsoap:body use="literal"/>
            </wsdl:input>
            <wsdl:output name="TestOut">
                <wsdlsoap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>

    <wsdl:service name="HelloService">
    <wsdl:port name="HelloPort" binding="tns:HelloSoapBinding">
        <soap:address location="http://localhost:8085/ode/processes/helloWorld"/>
    </wsdl:port>
    </wsdl:service>

</wsdl:definitions>