Clemens Utschig - Utschig wrote:
Sebastian,
it works :) thank you very much .. would you kindly explain what this changed 
in the behavior?

Actually, I'm Simon :-)

I'm still chasing down the root cause of this.  It seems to be related
to promotion of the reference.  The component reference is defined
with <interface.java> (this is implicitly done by introspection, since
no explicit interface for this appears in the composite file).  When
the component reference is promoted to a composite reference, the
<interface.java> is retained and is not overridden by the explicit
<interface.wsdl> in the promoted composite reference.  This causes
the <binding.ws> to regenerate new WSDL from the <interface.java>
definition, and this WSDL has tne wrong namespace.

I confirmed this by adding an explicit <interface.wsdl> to the
component reference and omitting wsdlElement from the <binding.ws>
in the composite reference.  This avoids the problem in my test
environment.

  Simon

thx clemens

-----Original Message-----
From: Simon Nash (JIRA) [mailto:[EMAIL PROTECTED]
Sent: Monday, February 18, 2008 3:11 PM
To: tuscany-dev@ws.apache.org
Subject: [jira] Commented: (TUSCANY-2033) java interface exposed as
service, annoted with javax.xml.ws.RequestWrapper(...) is ignoring the
namespace



    [ 
https://issues.apache.org/jira/browse/TUSCANY-2033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12570042#action_12570042
 ]

Simon Nash commented on TUSCANY-2033:
-------------------------------------

Please try changing your composite file to the following (with wsdlElement specified 
on <binding.ws>), and let me know whether it fixes the problem.

<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
           targetNamespace="/model/common/"
           xmlns:dbsdo="http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0";
           name="FlexEmployeeComposite" xmlns:tns="/model/common/types/"
           xmlns:types="/model/common/types/"
           xmlns:errors="http://xmlns.oracle.com/adf/svc/errors/";
           xmlns:flex="http://EmpFlexFieldService";
           xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";>
   <component name="FlexEmployeeServiceComponent">
    <implementation.java 
class="com.oracle.soa.test.tuscany.impl.EmployeeServiceComponent"/>
    <reference name="empFlexFieldService"/>
  </component>
  <reference name="empFlexFieldService"
             promote="FlexEmployeeServiceComponent/empFlexFieldService">
    <!-- <interface.java 
interface="model.common.serviceinterface.EmpFlexFieldService"/> -->
    <interface.wsdl interface="/model/common/#wsdl.interface(EmpFlexFieldService)" 
/>
    <binding.ws 
wsdlElement="/model/common/#wsdl.binding(EmpFlexFieldServiceSoapHttp)"
            
uri="http://localhost:8888/Application4710-Model-context-root/EmpFlexFieldService"/>
  </reference>
</composite>


java interface exposed as service, annoted with 
javax.xml.ws.RequestWrapper(...) is ignoring the namespace
----------------------------------------------------------------------------------------------------------

                Key: TUSCANY-2033
                URL: https://issues.apache.org/jira/browse/TUSCANY-2033
            Project: Tuscany
         Issue Type: Bug
         Components: Java SCA Axis Binding Extension
   Affects Versions: Java-SCA-1.0.1
           Reporter: clemens utschig
           Priority: Critical
            Fix For: Java-SCA-Next

        Attachments: EmpFlexFieldService.java, EmpFlexFieldService.wsdl, 
SDOReferenceBinding.zip


I have a composite defined that uses an external referenced webservice which 
provides SDOs
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
           targetNamespace="/model/common/"
            
xmlns:dbsdo="http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0";
            name="FlexEmployeeComposite" xmlns:tns="/model/common/types/"
            xmlns:types="/model/common/types/"
            xmlns:errors="http://xmlns.oracle.com/adf/svc/errors/";
            xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";>
   <component name="FlexEmployeeServiceComponent">
     <implementation.java 
class="com.oracle.soa.test.tuscany.impl.EmployeeServiceComponent"/>
     <reference name="empFlexFieldService"/>
   </component>
  <reference name="empFlexFieldService"
              promote="FlexEmployeeServiceComponent/empFlexFieldService">
     <interface.java 
interface="model.common.serviceinterface.EmpFlexFieldService"/>
     <binding.ws 
uri="http://localhost:1234/Application4710-Model-context-root/EmpFlexFieldService"/>
   </reference>
 </composite>
The java interface that is promoted as service interface / and reflects the 
webservice endpoint, contains jaxws annotations for namespaces as below ..
@javax.jws.soap.SOAPBinding(parameterStyle=javax.jws.soap.SOAPBinding.ParameterStyle.WRAPPED,
    style=javax.jws.soap.SOAPBinding.Style.DOCUMENT)
@javax.jws.WebService(targetNamespace="/model/common/", 
name="EmpFlexFieldService",
    wsdlLocation="model/common/serviceinterface/EmpFlexFieldService.wsdl")
@oracle.j2ee.ws.common.sdo.SchemaLocation(value="model/common/serviceinterface/EmpFlexFieldServicexsd")
public interface EmpFlexFieldService {
    public static final String NAME =
        new QName("/model/common/", "EmpFlexFieldService").toString();
    @javax.jws.WebMethod(action="/model/common/getEmployees1", 
operationName="getEmployees1")
    @javax.xml.ws.RequestWrapper(targetNamespace="/model/common/types/",
        localName="getEmployees1")
    @javax.xml.ws.ResponseWrapper(targetNamespace="/model/common/types/",
        localName="getEmployees1Response")
    @javax.jws.WebResult(name="result")
    DataObject 
getEmployees1(@javax.jws.WebParam(mode=javax.jws.WebParam.Mode.IN,
            name="empno")
        Integer empno) throws ServiceException;
At runtime - axis generates the following soap message - which is derived from 
the base targetNamespace
        <?xml version='1.0' encoding='UTF-8'?>
        <soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
                <soapenv:Body>
                        <_ns_:getEmployees1 xmlns:_ns_="/model/common/">
                                <empno xmlns="/model/common/">1</empno>
                        </_ns_:getEmployees1>
                </soapenv:Body>
        </soapenv:Envelope>
obviously this is wrong - it should be ..
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
    <soap:Body xmlns:ns1="/model/common/types/">
        <ns1:getEmployees1>
            <ns1:empno></ns1:empno>
        </ns1:getEmployees1>
    </soap:Body>
</soap:Envelope>

--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to