SOAP proxy for RESTful business service

Hi,
I have a requirement to consume a 3rd-party RESTful web service from within WebLogic Integration 9.2.3.
My organisation also has an OSB 10.3 installation which is lucky since WLI 9.2.3 does not readily support RESTful service consumption.
My plan is therefore to proxy the RESTful service via the OSB with a SOAP proxy service and consume the proxy from WLI.
Can anyone provide guidance on how I might go about this?
Cheers,
Rob

I want to give it a try :)
1. Create a business service with the 3rd-party RESTful web service WSDL and point it to the URL where it is currently deployed/hosted.
2. Create a Proxy Service to invoke the 3rd-party RESTful web service via the business service. (I think you will need to define a simple WSDL to be able to use this service from WLI)
3. Then import the ProxyService WSDL in WLI and invoke the same via the WebServiceControl.
I hope this works out well for you.
Thanks,
Patrick.

Similar Messages

  • Soap proxy to jms business service response not available.

    Hi
    Please can anyone help me with this really urgent, help is greatly appreciated.
    We have one Proxy Service which takes in SOAP Request, and I have a route node in it which calls the biz service.
    Business service is a Messaging service built using jms queue and response URI is configured with jms out queue.
    If I run business service standalone it gets the message and response comes to out queue.
    if I run it through proxy service which routes to biz service, the message goes to biz service, and response goes to out queue, but I do not get response in http proxy.
    Please can someone help.
    thanks
    K.

    Basically the logic to consume msg requires full SOAP message as text, now when I use BS as Messaging Service it works fine because in test I put the full soap message as text. If I run it through Proxy it strips the header and sends only Body or if I base both my BS and PS using WSDL, then it attaches full soap message in multiple soap header and that causes the problem, so I have to remove extra header from message to have it processed correctly.
    this is my actual request:
    <SOAP-ENV:Envelope      xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    the trace shows that request to BS is:
    <soapenv:Body      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Envelope      xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
    /SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    </soapenv:Body>
    so my message consumer has problem with extra soapenv:Body wrapper... any ideas will help.
    thanks
    K.

  • Passing attachment from a SOAP Proxy to a REST Business Service

    I am trying to create a SOAP proxy for a REST service on OSB 10g. I have to send a binary attachment as part of my SOAP request. I tried to use Service Callout to call my REST business service. Even though I receive the attachment as part of the request (I could log $attachments and see it), it is not being sent to the Business Service. I would appreciate any help. Thanks.
    Ardi

    OK, here is what I found out. I was using service callout to invoke the REST BS which does not seem to work, which I have not understood why?
    If I change to Routing to the invoke the BS I could pass the attachment and get it to work. I would appreciate any thoughts on the Service Callout issue.
    Thanks,
    Ardi

  • How to configure proxy services in OSB for Rest based services?

    how to configure proxy services in OSB for Rest based services implemented using Jersey (Rest).
    The Client need to contact OSB proxy servies by posting application/xml using jersey client and OSB proxy service will call the OSB business service.
    i would like to know how to get this request in OSB proxy service and send it to the business service and get the response back.

    I would suggest you refer to the below links:
    https://blogs.oracle.com/jeffdavies/entry/restful_services_with_oracle_s_1
    https://blogs.oracle.com/jamesbayer/entry/using_rest_with_oracle_service
    Hope this helps.
    Thanks,
    Patrick

  • Can I create JDE BSSV (Business Services) for REST based services?

    Can I create JDE BSSV (Business Services) for REST based services? If yes, then how? In what way it will be different from SOAP based?

    Hi
    Within Oracle SOA Suite, Oracle Service Bus would handle the REST side of things, which in turn would call the JCA adapter to talk to your JDE backend, or vice versa.
    Checkout the JDE adapter docs - http://www.oracle.com/technetwork/middleware/soasuite/documentation/jdewardsweb-1954164.pdf
    and the OSB Docs - HTTP and Poller Transports - 11g Release 1 (11.1.1.7)
    OSB 11.1.1.7 introduced additional REST support, so I'd recommend using that version onwards.
    Cheers
    iain

  • Setting an endpoint dynamically for a business service

    I need to set an endpoint for a business service dynamically in the message flow of a proxy service. I'm basically doing what it says in this article(page 9 under heading - Registry per Individual Domain):
    http://e-docs.bea.com/alsb/docs26/pdf/deploybestprac.pdf
    I've gone to the link to the User guide that it gives in there for "Using Dynamic Routing". And I've pieced together most of what I need to do. I have a dummy business service with a dummy URL. I'm making a service callout and getting and endpoint back and saving that endpoint address to a variable. (that's all in a stage in a pipeline node.) Then I dynamically route it to dummy business service. The part I don't know how/where to do is reassign the dummy business service's endpoint to the endpoint I got back from my service callout.
    Can anyone help me with this?
    Thanks,
    Brittany

    Try with a 'Dynamic publish to service' action with:
    <ctx:route isProxy="false">
    <ctx:service>{ $yourBusinessService }</ctx:service>
    </ctx:route>
    where $yourBusinessService is the variable hosting the uri of your business service.
    Regards
    ferp

  • How to set SOAP Header When Calling Business Service (OSB) Using Split-Join

    Hi,
    We need to call WSDL based webservice which requires heading static content for successful call. As we need to call the same service parallely, hence we want to use Split-Join.
    Looked at couple of forum links, noted that we can't play with headers while working with Split-Join.
    For curiosity, just want to check any option other than using proxy as mediator in setting header information.
    Regards
    Venkata Madhu

    Venkata,
    You still have the option, if you hv n't tried this one.
    To enable this capability, you must declare the header parts along with the body parts in a single request/response message in the Split-Join WSDL and in the WSDL of the proxy or business services invoked by the Split-Join. With the message parts declared in the WSDLs, SOAP header content is available to Split-Joins in the request/response message variables.
    Following is an example of the message and binding definitions in the WSDL.
    Message
    <wsdl:message name="retrieveCustomerOverviewByIdRequestMessage">
    <wsdl:part name="retrieveCustomerOverviewByIdRequest"
    element="co:retrieveCustomerOverviewByIdRequest"/>
    *<wsdl:part name="serviceContext" element="sc:serviceContext"/>*
    </wsdl:message>
    Binding
    <wsdl:input>
    <soap:body use="literal" parts="retrieveCustomerOverviewByIdRequest"/>
    *<soap:header message="tns:retrieveCustomerOverviewByIdRequestMessage"part="serviceContext" use="literal"/>*
    </wsdl:input>
    hope it helps !!
    Regards,
    Abhinav

  • Problem in creating a java proxy for PHP web service

    This is a problem in generating a java proxy for a PHP webservice.
    I have a PHP service running on Wamp Server and also a PHP client which is able to call the service.
    The WSDL for the PHP web service is also generated .
    I am trying to create a java proxy using the jdev (10.1.3.0.3) from the wsdl file.
    The wsdl generated by the php program is
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd" xmlns:tns="urn:hellowsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:hellowsdl">
    <types>
    <xsd:schema targetNamespace="urn:hellowsdl">
      <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
      <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
      </xsd:schema>
      </types>
    <message name="helloRequest">
      <part name="name" type="xsd:string" />
      </message>
    <message name="helloResponse">
      <part name="return" type="xsd:string" />
      </message>
    <portType name="hellowsdlPortType">
    <operation name="hello">
      <documentation>Says hello to the caller</documentation>
      <input message="tns:helloRequest" />
      <output message="tns:helloResponse" />
      </operation>
      </portType>
    <binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="hello">
      <soap:operation soapAction="urn:hellowsdl#hello" style="rpc" />
    <input>
      <soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
    <output>
      <soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
      </operation>
      </binding>
    <service name="hellowsdl">
    <port name="hellowsdlPort" binding="tns:hellowsdlBinding">
      <soap:address location="http://localhost/mywork/myphp.php" />
      </port>
      </service>
      </definitions>After making following changes to the wsdl program, I tried to generate java proxy.
    <definitions name="hellowsdl"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:si="http://soapinterop.org/xsd" xmlns:tns="http://localhost/mywork/hellowsdl.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://localhost/mywork/myphpwsdl.wsdll">
    <types>
    <xsd:schema targetNamespace="http://localhost/mywork/hellowsdl.wsdl">
      <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
      <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
      </xsd:schema>
      </types>
    <message name="helloRequest">
      <part name="name" type="xsd:string" />
      </message>
    <message name="helloResponse">
      <part name="return" type="xsd:string" />
      </message>
    <portType name="hellowsdlPortType">
    <operation name="hello">
      <documentation>Says hello to the caller</documentation>
      <input message="tns:helloRequest" />
      <output message="tns:helloResponse" />
      </operation>
      </portType>
    <binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="hello">
      <soap:operation soapAction="" style="rpc" />
    <input>
      <soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
    <output>
      <soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
      </operation>
      </binding>
    <service name="hellowsdl">
    <port name="hellowsdlPort" binding="tns:hellowsdlBinding">
      <soap:address location="http://localhost/mywork/myphp.php" />
      </port>
      </service>
      </definitions>This is how the java stub file looks like:
    public class HellowsdlBinding_Stub
        extends oracle.j2ee.ws.client.StubBase
        implements demo.mypackage.HellowsdlPortType {
         *  public constructor
        public HellowsdlBinding_Stub(HandlerChain handlerChain) {
            super(handlerChain);
            _setProperty(ENDPOINT_ADDRESS_PROPERTY, "http://localhost/mywork/hellowsdl.php");
            setSoapVersion(SOAPVersion.SOAP_11);
            setServiceName( new QName("http://localhost/mywork/hellowsdl","hellowsdl"));
            setPortName( new QName("http://localhost/mywork/hellowsdl","hellowsdlPort"));
         *  implementation of hello
        public java.lang.String hello(java.lang.String name)
            throws java.rmi.RemoteException {
            StreamingSenderState _state = null;
            try {
                _state = _start(_handlerChain);
                if (_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS) != null) {
                    _state.getMessageContext().getMessage().setProperty("DimeEncode",_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS));
                InternalSOAPMessage _request = _state.getRequest();
                _request.setOperationCode(hello_OPCODE);
                _state.getMessageContext().setProperty("oracle.j2ee.ws.mgmt.interceptor.operation-qname",new QName("","hello"));
                demo.mypackage.runtime.HellowsdlBinding_hello_ReqS _myHellowsdlBinding_hello_ReqS = new demo.mypackage.runtime.HellowsdlBinding_hello_ReqS();
            _myHellowsdlBinding_hello_ReqS.setName(name);
            SOAPBlockInfo _bodyBlock = new SOAPBlockInfo(ns1_hello_hello_QNAME);
            _bodyBlock.setValue(_myHellowsdlBinding_hello_ReqS);
            _bodyBlock.setSerializer(myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer);
            _request.setBody(_bodyBlock);
            _state.getMessageContext().setProperty("http.soap.action", "http://localhost/mywork/hellowsdl");
            _send((String) _getProperty(ENDPOINT_ADDRESS_PROPERTY), _state);
            demo.mypackage.runtime.HellowsdlBinding_hello_RespS _myHellowsdlBinding_hello_RespS = null;
            Object _responseObj = _state.getResponse().getBody().getValue();
            if (_responseObj instanceof SOAPDeserializationState) {
                _myHellowsdlBinding_hello_RespS =
                    (demo.mypackage.runtime.HellowsdlBinding_hello_RespS)((SOAPDeserializationState)_responseObj).getInstance();
            } else {
                _myHellowsdlBinding_hello_RespS =
                    (demo.mypackage.runtime.HellowsdlBinding_hello_RespS)_responseObj;
            return _myHellowsdlBinding_hello_RespS.get_return();
        } catch (RemoteException e) {
            // let this one through unchanged
            throw e;
        } catch (JAXRPCException e) {
            throw new RemoteException(e.getMessage(), e);
        } catch (Exception e) {
            if (e instanceof RuntimeException) {
                throw (RuntimeException)e;
            } else {
                throw new RemoteException(e.getMessage(), e);
    *  this method deserializes the request/response structure in the body
    protected void _readFirstBodyElement(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState  state) throws Exception {
        int opcode = state.getRequest().getOperationCode();
        switch (opcode) {
            case hello_OPCODE:
                _deserialize_hello(bodyReader, deserializationContext, state);
                break;
            default:
                throw new SenderException("sender.response.unrecognizedOperation", Integer.toString(opcode));
    * This method deserializes the body of the hello operation.
    private void _deserialize_hello(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
        try {
            Object myHellowsdlBinding_hello_RespSObj =
                myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer.deserialize(ns1_hello_helloResponse_QNAME,
                    bodyReader, deserializationContext);
            SOAPBlockInfo bodyBlock = new SOAPBlockInfo(ns1_hello_helloResponse_QNAME);
            bodyBlock.setValue(myHellowsdlBinding_hello_RespSObj);
            state.getResponse().setBody(bodyBlock);
        } catch (DeserializationException e) {
            if (e.getSoapFaultSubCodeType() == JAXRPCExceptionBase.FAULT_CODE_NONE && e.getSoapFaultCodeType() != JAXRPCExceptionBase.FAULT_CODE_DATA_ENCODING_UNKNOWN) {
                e.setSoapFaultSubCodeType(JAXRPCExceptionBase.FAULT_CODE_BAD_ARGUMENTS);
            throw e;
    public String _getEncodingStyle() {
        return SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding();
    public void _setEncodingStyle(String encodingStyle) {
        throw new UnsupportedOperationException("cannot set encoding style");
    public ClientTransport getClientTransport() {
        return super._getTransport();
    * This method returns an array containing (prefix, nsURI) pairs.
    protected String[] _getNamespaceDeclarations() {
        return myNamespace_declarations;
    * This method returns an array containing the names of the headers we understand.
    public QName[] _getUnderstoodHeaders() {
        return understoodHeaderNames;
    * This method handles the case of an empty SOAP body.
    protected void _handleEmptyBody(XMLReader reader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
    public void _initialize(InternalTypeMappingRegistry registry) throws Exception {
        super._initialize(registry);
        myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_ReqS.class, ns1_hello_TYPE_QNAME);
        myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_RespS.class, ns1_helloResponse_TYPE_QNAME);
    private static final QName _portName = new QName("http://localhost/mywork/hellowsdl", "hellowsdlPort");
    private static final int hello_OPCODE = 0;
    private static final QName ns1_hello_hello_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
    private static final QName ns1_hello_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
    private CombinedSerializer myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer;
    private static final QName ns1_hello_helloResponse_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
    private static final QName ns1_helloResponse_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
    private CombinedSerializer myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer;
    private static final String[] myNamespace_declarations =
                                        new String[] {
                                            "ns0", "http://localhost/mywork/hellowsdl"
    private static final QName[] understoodHeaderNames = new QName[] {  };
    }The errors that are produced are-
    java.rmi.RemoteException: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found; nested exception is:
         HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found
    Kindly help to resolve this.
    Thanks.

    This is a problem in generating a java proxy for a PHP webservice.
    I have a PHP service running on Wamp Server and also a PHP client which is able to call the service.
    The WSDL for the PHP web service is also generated .
    I am trying to create a java proxy using the jdev (10.1.3.0.3) from the wsdl file.
    The wsdl generated by the php program is
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd" xmlns:tns="urn:hellowsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:hellowsdl">
    <types>
    <xsd:schema targetNamespace="urn:hellowsdl">
      <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
      <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
      </xsd:schema>
      </types>
    <message name="helloRequest">
      <part name="name" type="xsd:string" />
      </message>
    <message name="helloResponse">
      <part name="return" type="xsd:string" />
      </message>
    <portType name="hellowsdlPortType">
    <operation name="hello">
      <documentation>Says hello to the caller</documentation>
      <input message="tns:helloRequest" />
      <output message="tns:helloResponse" />
      </operation>
      </portType>
    <binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="hello">
      <soap:operation soapAction="urn:hellowsdl#hello" style="rpc" />
    <input>
      <soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
    <output>
      <soap:body use="encoded" namespace="urn:hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
      </operation>
      </binding>
    <service name="hellowsdl">
    <port name="hellowsdlPort" binding="tns:hellowsdlBinding">
      <soap:address location="http://localhost/mywork/myphp.php" />
      </port>
      </service>
      </definitions>After making following changes to the wsdl program, I tried to generate java proxy.
    <definitions name="hellowsdl"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:si="http://soapinterop.org/xsd" xmlns:tns="http://localhost/mywork/hellowsdl.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://localhost/mywork/myphpwsdl.wsdll">
    <types>
    <xsd:schema targetNamespace="http://localhost/mywork/hellowsdl.wsdl">
      <xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
      <xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
      </xsd:schema>
      </types>
    <message name="helloRequest">
      <part name="name" type="xsd:string" />
      </message>
    <message name="helloResponse">
      <part name="return" type="xsd:string" />
      </message>
    <portType name="hellowsdlPortType">
    <operation name="hello">
      <documentation>Says hello to the caller</documentation>
      <input message="tns:helloRequest" />
      <output message="tns:helloResponse" />
      </operation>
      </portType>
    <binding name="hellowsdlBinding" type="tns:hellowsdlPortType">
      <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="hello">
      <soap:operation soapAction="" style="rpc" />
    <input>
      <soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </input>
    <output>
      <soap:body use="encoded" namespace="http://localhost/mywork/hellowsdl" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
      </output>
      </operation>
      </binding>
    <service name="hellowsdl">
    <port name="hellowsdlPort" binding="tns:hellowsdlBinding">
      <soap:address location="http://localhost/mywork/myphp.php" />
      </port>
      </service>
      </definitions>This is how the java stub file looks like:
    public class HellowsdlBinding_Stub
        extends oracle.j2ee.ws.client.StubBase
        implements demo.mypackage.HellowsdlPortType {
         *  public constructor
        public HellowsdlBinding_Stub(HandlerChain handlerChain) {
            super(handlerChain);
            _setProperty(ENDPOINT_ADDRESS_PROPERTY, "http://localhost/mywork/hellowsdl.php");
            setSoapVersion(SOAPVersion.SOAP_11);
            setServiceName( new QName("http://localhost/mywork/hellowsdl","hellowsdl"));
            setPortName( new QName("http://localhost/mywork/hellowsdl","hellowsdlPort"));
         *  implementation of hello
        public java.lang.String hello(java.lang.String name)
            throws java.rmi.RemoteException {
            StreamingSenderState _state = null;
            try {
                _state = _start(_handlerChain);
                if (_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS) != null) {
                    _state.getMessageContext().getMessage().setProperty("DimeEncode",_getProperty(ClientConstants.DIME_ENCODE_MESSAGES_WITH_ATTACHMENTS));
                InternalSOAPMessage _request = _state.getRequest();
                _request.setOperationCode(hello_OPCODE);
                _state.getMessageContext().setProperty("oracle.j2ee.ws.mgmt.interceptor.operation-qname",new QName("","hello"));
                demo.mypackage.runtime.HellowsdlBinding_hello_ReqS _myHellowsdlBinding_hello_ReqS = new demo.mypackage.runtime.HellowsdlBinding_hello_ReqS();
            _myHellowsdlBinding_hello_ReqS.setName(name);
            SOAPBlockInfo _bodyBlock = new SOAPBlockInfo(ns1_hello_hello_QNAME);
            _bodyBlock.setValue(_myHellowsdlBinding_hello_ReqS);
            _bodyBlock.setSerializer(myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer);
            _request.setBody(_bodyBlock);
            _state.getMessageContext().setProperty("http.soap.action", "http://localhost/mywork/hellowsdl");
            _send((String) _getProperty(ENDPOINT_ADDRESS_PROPERTY), _state);
            demo.mypackage.runtime.HellowsdlBinding_hello_RespS _myHellowsdlBinding_hello_RespS = null;
            Object _responseObj = _state.getResponse().getBody().getValue();
            if (_responseObj instanceof SOAPDeserializationState) {
                _myHellowsdlBinding_hello_RespS =
                    (demo.mypackage.runtime.HellowsdlBinding_hello_RespS)((SOAPDeserializationState)_responseObj).getInstance();
            } else {
                _myHellowsdlBinding_hello_RespS =
                    (demo.mypackage.runtime.HellowsdlBinding_hello_RespS)_responseObj;
            return _myHellowsdlBinding_hello_RespS.get_return();
        } catch (RemoteException e) {
            // let this one through unchanged
            throw e;
        } catch (JAXRPCException e) {
            throw new RemoteException(e.getMessage(), e);
        } catch (Exception e) {
            if (e instanceof RuntimeException) {
                throw (RuntimeException)e;
            } else {
                throw new RemoteException(e.getMessage(), e);
    *  this method deserializes the request/response structure in the body
    protected void _readFirstBodyElement(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState  state) throws Exception {
        int opcode = state.getRequest().getOperationCode();
        switch (opcode) {
            case hello_OPCODE:
                _deserialize_hello(bodyReader, deserializationContext, state);
                break;
            default:
                throw new SenderException("sender.response.unrecognizedOperation", Integer.toString(opcode));
    * This method deserializes the body of the hello operation.
    private void _deserialize_hello(XMLReader bodyReader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
        try {
            Object myHellowsdlBinding_hello_RespSObj =
                myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer.deserialize(ns1_hello_helloResponse_QNAME,
                    bodyReader, deserializationContext);
            SOAPBlockInfo bodyBlock = new SOAPBlockInfo(ns1_hello_helloResponse_QNAME);
            bodyBlock.setValue(myHellowsdlBinding_hello_RespSObj);
            state.getResponse().setBody(bodyBlock);
        } catch (DeserializationException e) {
            if (e.getSoapFaultSubCodeType() == JAXRPCExceptionBase.FAULT_CODE_NONE && e.getSoapFaultCodeType() != JAXRPCExceptionBase.FAULT_CODE_DATA_ENCODING_UNKNOWN) {
                e.setSoapFaultSubCodeType(JAXRPCExceptionBase.FAULT_CODE_BAD_ARGUMENTS);
            throw e;
    public String _getEncodingStyle() {
        return SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding();
    public void _setEncodingStyle(String encodingStyle) {
        throw new UnsupportedOperationException("cannot set encoding style");
    public ClientTransport getClientTransport() {
        return super._getTransport();
    * This method returns an array containing (prefix, nsURI) pairs.
    protected String[] _getNamespaceDeclarations() {
        return myNamespace_declarations;
    * This method returns an array containing the names of the headers we understand.
    public QName[] _getUnderstoodHeaders() {
        return understoodHeaderNames;
    * This method handles the case of an empty SOAP body.
    protected void _handleEmptyBody(XMLReader reader, SOAPDeserializationContext deserializationContext, StreamingSenderState state) throws Exception {
    public void _initialize(InternalTypeMappingRegistry registry) throws Exception {
        super._initialize(registry);
        myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_ReqS.class, ns1_hello_TYPE_QNAME);
        myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer = (CombinedSerializer)registry.getSerializer(SOAPEncodingConstants.getSOAPEncodingConstants(soapVersion).getURIEncoding(), demo.mypackage.runtime.HellowsdlBinding_hello_RespS.class, ns1_helloResponse_TYPE_QNAME);
    private static final QName _portName = new QName("http://localhost/mywork/hellowsdl", "hellowsdlPort");
    private static final int hello_OPCODE = 0;
    private static final QName ns1_hello_hello_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
    private static final QName ns1_hello_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "hello");
    private CombinedSerializer myns1_hello__HellowsdlBinding_hello_ReqS_SOAPSerializer;
    private static final QName ns1_hello_helloResponse_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
    private static final QName ns1_helloResponse_TYPE_QNAME = new QName("http://localhost/mywork/hellowsdl", "helloResponse");
    private CombinedSerializer myns1_helloResponse__HellowsdlBinding_hello_RespS_SOAPSerializer;
    private static final String[] myNamespace_declarations =
                                        new String[] {
                                            "ns0", "http://localhost/mywork/hellowsdl"
    private static final QName[] understoodHeaderNames = new QName[] {  };
    }The errors that are produced are-
    java.rmi.RemoteException: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found; nested exception is:
         HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found
    Kindly help to resolve this.
    Thanks.

  • Dynamic routing for a Business Service with multiple operations

    I have two business services with multiple operations. Business service A (bsA) has operations OpA1 and OpA2. Business service B (bsB) has operations OpB1 and OpB2.
    Depending on incoming Proxy message and operation, I have to do one of the following
    1. If someValue = A and operation= Op1 then invoke operation opA1 of bsA
    2. If someValue = B and operation= Op1 then invoke operation opB1 of bsB
    3. If someValue = C and operation= Op1 then invoke operation opA1 of bsA AND* operation opB1 of bsB and return aggregate data of both invocations
    1. If someValue = A and operation= Op2 then invoke operation opA2 of bsA
    2. If someValue = B and operation= Op2 then invoke operation opB2 of bsB
    3. If someValue = C and operation= Op2 then invoke operation opA2 of bsA AND* operation opB2 of bsB and return aggregate data of both invocations
    Using a dynamic route node or dynamic routing options, I am able to achieve cases 1, 2, 4, and 5.
    But for cases 3 & 6, I can not use a route node. When I use a Service call out instead, then I am forced to create a Operational branch but that does not seem like the best design since for every new operation added to the business services, I have to add a new branch to the Operational branch and redo all the functionality for that branch.
    Basically, I am looking to achieve the functionality of the Route node ( no need to specify the operation ).
    Any thoughts/ideas on what the best design would be?
    thanks

    For cases 3 & 6, why don't you route to another proxy service where you can simple do two service callouts, merge output data somehow and return them to the first proxy?
    If you look for "special route feature", that could possibly call two services for a single message, I'm afraid you won't succeed.

  • OSB 10.3: proxy based on business service

    Hello there,
    the functionality to build a proxy based on a business service with Workshop10.3 seems to have "dissapeared" from ALSB 10 to OSB 10.3
    Is it a bug or feature? (Or is it one of the "things will be different at Oracle now.")
    As far as I can see it is nowhere documented.
    thanks,
    Barossa

    This is still not documented and very confusing since the old docs are distributed with the downloads of the current OSB AND the "Definitive Guide to OSB" by Davies also tells you to do it with the Wizard. ;-)
    Please document! But for this posting I would still be dazed and confused!!

  • Creating client proxy for calling web service

    Hello,
    I like to call a WebServce from our vendor. The vendor provides me no WSDL document.
    Question: Is it possible to create a client proxy without WSDL? I have just the SOAP Request/Response.
    SAP ECC 6.0
    SAP_BASIS     700     0010
    Thank you very much in advance for any helpful answer.
    Kind regards
    Axel

    Hi Axel,
               I am working on a program to connect to a external web-service from SAP (R/3 enterprise 4.7) and while searching all the available stuff for this I got this method.
    But, I am still facing some other issues and hence doesn't have the whole solution. You have to probably try it out from your side once and see if it helps.
    Please refer the following blog.
    https://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/847. [original link is broken] [original link is broken] [original link is broken]
    it describes a method which is not at all using any WSDL file. Instead it uses the CL_HTTP_CLIENT class to pass a SOAP request to the web-service and then get the response.
    Regards
    Barada

  • Namespace Error when generating Client Proxy for Java Web Service

    Hi.Experts:
        When I want to generating a Client Proxy for my WSDL file created by JAVA,it seems that some namespace errors occur.
        The error like this:
        "Incorrect value: Unknown Namespace http://sql.java
        Exception of class CX_SLIB "
       I checked all the SOAP runtime,it seems no error.So do I need to create the objects in the Integration Repository??If it is the truth,then how can I do it.
    Best Regards
    Martin Xie

    Hi Martin
    I didn't find this options in SAP GUI Create -->Enterprise Service ->Consumer Service ->url/http
    Maybe my version is different.
    You say that you can select the file ou url.
    Did you select the file or url?
    If was file, open this file, find the tag that you have the wrong namespace and eliminate this tag.
    If was url, access this url, copy the xml and same in one file, then select this file in the step above.
    I don't know if works, its only a suggestion.
    regards
    Marcos

  • Need to auto-generate SDK for REST web service.

    My company has developed a REST API for some web services, and we'd like to provide users with a Java SDK for consuming those services.
    Our services are described by an XSD schema. On the backend, we are using JAXB to create Java classes corresponding to the schema. We create the request objects based on the parameters in the REST url, and JAXB converts our response objects from Java to XML.
    We'd like to provide our users with similar Java classes on the client side. They should be able to create the object corresponding to the request, fill in various parameters, and submit it to our web service. The SDK should automatically convert the object into a REST URL, hit the URL with a Get, read the XML response, and convert that response into Java objects.
    It seems like we should be able to auto-generate such an SDK based on our schema.
    It seems like there are several tools for doing this for SOAP web services. For example, Apache Axis has Java2WSDL and WSDL2Java.
    Can anyone recommend tools for creating client-side libraries for consuming RESTful web services? Does anyone have advice on products to avoid?

    Replying to my own post here. The WADL2Java project on java.dev seems to be more like what I need. The only user-experience I've seen on the 'net is in this forum post:
    http://forum.java.sun.com/thread.jspa?threadID=5239123&tstart=0
    Anyone else used it?

  • Same logiical system for 2 Business Service

    Hi All,
              Can two business services use the same Logical system name.
    Regards,
    XIer

    <i>We have a scenario where we want to send files and also another scenario where we have to send a file.</i>
    Not sure I got the point here
    Logical System Names make sense only when dealing with SAP systems when trying to post an Idoc. For File System's they have no use at all.
    Regards
    Bhavesh

  • How To Set Parameters in a SOAP-Message for QUERY_VIEW_DATA Web Service

    Hi all,
    I want to use the QUERY_VIEW_DATA Web Service to get data from BI through an existing BEx-query.
    How can I set a navigation status as it is stated in the SAP documentation [Web Service for Accessing Query Data|http://help.sap.com/saphelp_nw04/helpdata/en/d8/3bfc3f8fc2c542e10000000a1550b0/frameset.htm]?
    I am able to set filter values but setting any parameter with the name 'CMD' has no effect to the response.
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
      <soapenv:Header/>
      <soapenv:Body>
        <urn:GetQueryViewData>
          <Parameter>
            <!-- This has no effect -->
            <item>
              <Name>CMD</Name>
              <Value>SWITCH_AXIS</Value>
            </item>
            <!-- This works --> 
            <item>
              <Name>FILTER_IOBJNM</Name>
              <Value>0COMP_CODE</Value>
            </item>
            <item>
              <Name>FILTER_VALUE</Name>
              <Value>4020</Value>
            </item>
          </Parameter>
          <Query>Z_MYQUERY</Query>
        </urn:GetQueryViewData>
      </soapenv:Body>
    </soapenv:Envelope>
    We use SAP NetWeaver 7.0 EHP1. The documentation mentioned above belongs to NetWeaver 2004s and I can't find it in the docu for 7.0. Does that mean the QUERY_VIEW_DATA is deprecated?
    Thanks for your help!
    Best regards
    Heiko Braeske

    Dear Heiko,
    did you solve this problem?
    We are facing the same problem. Every parameter that requries "cmd" does not work. I guess we don´t use this paramter the right way.
    Best, Chris

Maybe you are looking for

  • Possible to check in Java, if if a package is already in the jar-Cache?

    I have an applet, that has only one main.jar in the Cache-Archive parameter. Because I wanted to reduce the preload-Time, since 1.4.0 I use an index.list file, listing the rest of jar-Files needed for my applet. So the jar-Files will be only download

  • I need to install a keyboard driver without a keyboard

    I need to install a USB keyboard driver on my Mac Mini without a keyboard (my USB mouse works fine, and my original keyboard is 1000 miles away). I have only one USB keyboard in this house but the driver to make it work with OS X is on the Logitech w

  • Itunes will not install. PLEASE HELP!

    i've tryed to download itunes 10 and quicktime. but once i've pressed the blue 'download now' button the next page appears with a red box that stretches to the bottom of the page and says "This frame was blocked because it contains some insecure cont

  • Adobe Pro X not recognizing .doc or .docx files for conversion to PDF (looking to batch convert Word-- PDF

    I am using Adobe Pro X through my university and when I click on add files, it will not recognize that I have word files in my folders. My purpose is to batch convert many word files to PDF, however, if Adobe Pro X won't recognize allow the word file

  • Undo 9iAS Rel 2 Middle-tier patch

    Does anyone know whether the middle-tier Interoperability patch can be undone? HTTP server won't start up with error message ADMN-100999 after the patch was applied. There is a script "undo_pre2334975_c_9.0.1.3.0.sh" in the patch folder rdbms_bundled