Biztalk 2010 - Consume Web Service with Certificate

Hi
I have to consume a java web service with Biztalk that requires authentication via a client certificate. Until now I have not been able to consume any web service where any kind of authentication was needed. Simple web services without authentication are
no problem. Also using SoapUI works perfectly fine.
I am generating the XSDs and the port binding with the WCF wizard in VS2010. I've read several comments that it's not possible to consume web services with the WCF-WSHttp adapter when the message format should be SOAP 1.1. Therefore I'm trying with the WCF-BasicHttp
and WCF-Custom adapters, but I did not suceed in receiving a positive response yet.
The web service I want to consume uses a client certificate (with a private key) and two root certificates. When I use the BasicHttp adapter I choose either 'Transport' or 'TransportWithMessageCredential' but none of them work. I also have to supply a client
and a service certificate. I always use the one with the private key for the client but I'm not sure which one I have to use for the service. Is there a possibility that I have to provide both root certificates and if so, how can I achieve this?
Hope the question makes sense somehow... thanks for any input.
Error message that I receive currently is that the server needs a client certificate. However I attached it in the send port properties under the tab "Security" => mode "TransportWithMessageCredential".

Adapter: WCF-Custom
Binding: customBinding
Cannot send pictures (yet).
<configuration>
<enterpriseLibrary.ConfigurationSource selectedSource="ESB File Configuration Source" />
<system.serviceModel>
<client>
<endpoint address="...." behaviorConfiguration="EndpointBehavior" binding="customBinding" bindingConfiguration="ReceiptBinding" contract="BizTalk" name="WebServicePort" />
</client>
<behaviors>
<endpointBehaviors>
<behavior name="EndpointBehavior">
<clientCredentials>
<clientCertificate findValue="..." x509FindType="FindByThumbprint" />
<serviceCertificate>
<defaultCertificate findValue="..." storeLocation="LocalMachine" storeName="AuthRoot" x509FindType="FindByThumbprint" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior" />
</serviceBehaviors>
</behaviors>
<bindings>
<customBinding>
<clear />
<binding name="ReceiptBinding">
<textMessageEncoding messageVersion="Soap11" />
<security authenticationMode="MutualCertificate" />
<httpsTransport proxyAuthenticationScheme="Basic" requireClientCertificate="true" />
</binding>
</customBinding>
</bindings>
</system.serviceModel>
</configuration>

Similar Messages

  • Consume Web Service with SSL

    Hi expert!!!
    I have a problem!!
    I need consume a web service with ssl autentification in PI to call from SAP.
    That web services is of AFIP (Argentina ).
    i don`t know how do that!!
    How and where configure the certificate for signature??
    Thxz in advance!!!
    Sorry my bad english..

    thxz for all!!!!1
    I will be to resume my problem
    i need sign xml file with a certificate!!1
    i have xml file build in ABAP,  i try do with openssl in windows or unix to sign with private key file and certificate file .Crt
    that generate a new file with sign, i put this in other web service and work....
    i need do that in abap or pi..... i abap i could create xml file, but i can`t execute open ssl.....
    thxz for u help!!!

  • Consuming web services with a java application

    Hello,
    I want to consume an ABAP generated web service with a stand-alone Java application. I am very new to this topic and need some hints how this functionality could be achieved.
    How is the web service accessed by the Java application? What about security issues?
    Thank you in advance for your replies! They will be appreciated.
    Kindest regards

    Hi
    See this Help and Examples
    http://help.sap.com/saphelp_nw2004s/helpdata/en/e2/36a53dc1204c64e10000000a114084/frameset.htm
    Kind Regards
    Mukesh

  • Consuming Web Services with ABAP - WSDL

    Hi All,
    I Want to consume web service in abap, i found lot of documents,Here i am having data in the internal table i need to pass
    it to wsdl file, The Web Service or Proxy generates a WSDL file. So this WSDL file can be consumed on ABAP Front and Encrypt the Data that is to be sent to the Banks.
    I found the input and output, Where i can find the method generated or we need to create it
    CALL METHOD io_clientproxy->XXXXXXXXXXXX
    please let me have your valuable ideas
    Thanks in advance,
    Arun.

    Hi Miguel,
    I have not heared about SPROXY, Here i found some code,which calls a web service method and where it is from.
    when i double click on my proxy it shows me some method.IF_PROXY_BASIS_INTERNAL~CREATE_FRAMEWORK
    this is the one web service method. and i meed to pass the internal table data to WSDL file.
    *-- create web service proxy class instance
    TRY.
        CREATE OBJECT io_clientproxy
          EXPORTING
            logical_port_name = 'LP4'.
      CATCH cx_ai_system_fault.
    ENDTRY.
    *-- call web service methods
    TRY.
        CALL METHOD io_clientproxy->get_airport_information_by_is
          EXPORTING
            input  = input
          IMPORTING
            output = output.
      CATCH cx_ai_system_fault.
      CATCH cx_ai_application_fault.
    ENDTRY.
    *-- text processing
    output_string = output-get_airport_information_by_is.
    REPLACE ALL OCCURRENCES OF
        '<' IN output_string WITH '<' .
    REPLACE ALL OCCURRENCES OF
    '>' IN output_string WITH '>' .
    REPLACE ALL OCCURRENCES OF
    'xmlns=' IN output_string WITH 'xmlns:xsl=' .
    *-- parsing
    TRY .
        CALL TRANSFORMATION ('Y_AIRPORT_XML2ABAP')
                SOURCE XML output_string
                RESULT     outtab = outtab.
      CATCH cx_xslt_exception INTO xslt_err.
        DATA: s TYPE string.
        s = xslt_err->get_text( ).
        WRITE: ': ', s.
        STOP.
    ENDTRY .
    Regards,
    Arun.

  • Connect to Secure web service with certificate from SAP EP

    Hi Experts,
    Here is the current situation:
    1. Our business requirement is to connect 3rd party RESTful web service which requires secure connection with private client certificate attached
    2. I've tested in my Java test application and successfully attached private certificate to HttpsURLConection request to the web service and made a connection. No problem at all.
    KeyStore keyStore  = KeyStore.getInstance("PKCS12");
    InputStream inputStream = new FileInputStream("privateKeyCert.p12");
    keyStore.load(inputStream, "myPassword".toCharArray());
    KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
    keyManagerFactory.init(keyStore, "myPassword".toCharArray());
    KeyManager[] kms = keyManagerFactory.getKeyManagers();
    SSLContext sslContext = SSLContext.getInstance("SSL");
    sslContext.init(kms, null, new SecureRandom());
    SSLSocketFactory sockFact = sslContext.getSocketFactory();
    URL url = new URL("https://www.thirdpartywebservice.com/testroot/");
    HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
    conn.setSSLSocketFactory(sockFact);
    conn.setRequestMethod("POST");
    conn.setDoOutput(true);
    conn.setDoInput(true);
    conn.setUseCaches(false);
    conn.setDefaultUseCaches (false);
    conn.setRequestProperty("Content-Type", "text/xml");
    3. Next, I tried to apply my Java application to SAP EP NetWeaver, and found that I have to use SecureConnectionFactory:
    https://help.sap.com/saphelp_nw70ehp1/helpdata/en/e2/71c83edf72e16be10000000a114084/content.htm
    4. So, I modified my Java code for SAP EP:
    KeyStore keyStore  = KeyStore.getInstance("PKCS12");
    InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("privateKeyCert.p12");
    keyStore.load(inputStream, "myPassword".toCharArray());
    SecureConnectionFactory scFactory = new SecureConnectionFactory(keyStore);
    HttpURLConnection conn = scFactory.createURLConnection("https://www.thirdpartywebservice.com/testroot/");
    conn.setRequestMethod("POST");
    conn.setDoOutput(true);
    conn.setDoInput(true);
    conn.setUseCaches(false);
    conn.setDefaultUseCaches (false);
    conn.setRequestProperty("Content-Type", "text/xml");
    And I'm facing the following error message:
    Exception: java.security.UnrecoverableKeyException: ja
    va.security.GeneralSecurityException: Unable to decrypt private key: javax.crypto.BadPaddingException: Invalid PKCS#5 padding length: 253
    Could you please help me what this error message means?
    Do you think do I need to to do some other configuration to make connection to web service with client certificate?
    This is our first approach. Please help...
    Thank you in advance.

    SunJSSE implement SSL server CertificateRequest in a strict mode, if client failed to find a proper certificate corresponding the server request, it does not guess what's the proper certificate and send to the server. In your case, because there is no intermediate certificate in the client context, so there is no way to make the decision which certificate would be acceptable by server, so client does not send any cert to server. That's why you got a handshaking error.
    I guess your client key store does not contains a full certificate path from the client end-entity certificate to the root CA. Please import the full certificate path into the key store.
    BTW, these approaches should work, but I found no reason why one does not adopt #1:
    1. import the full certification path of client certificate into client key store.
    2. as a workaround, configure the server to send a list including the intermediate certificates;
    3. as a workaround, you will have to customize the client KeyManager if you don't want to or are not able to configure the server to send a list including the intermediate certificates.

  • How to consume Web Service with Password digest from PLSQL

    We have Oracle 10g (10.2.0.3.0) 64 bit. We have a situation where we need to consume web service whose security header looks like as follow,
    <soapenv:Header>
    <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <wsse:UsernameToken wsu:Id="UsernameToken-50">
    <wsse:Username>weblogic</wsse:Username>
    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">d2enK45chjBPVvvukbYU6OX56kI=</wsse:Password>
    <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">YAhEtLJfp4lzycLd3hZYjQ==</wsse:Nonce>
    <wsu:Created>2013-01-22T06:28:38.897Z</wsu:Created>
    </wsse:UsernameToken>
    </wsse:Security>
    </soapenv:Header>
    Here we need passowrd digest, Nonce and Timestamp.
    How to create password digest from PLSQL? or if any other alternatives available please response soon.

    I do not see why it will not be possible to do digest authentication with a web server using PL/SQL.
    As for the digest password - the web server supplies a token (a nonce) which you need to use for creating the hashed authentication token (the digest password). The URL I posted explains this authentication process.
    As for the technical how-to in PL/SQL - as I mentioned, never had to do this (only dealt with Basic and NTLM authentication thus far). But as other auth methods (such as Microsoft's NTLM) can be implemented, I do not see why digest authentication could not.
    Suggest you spend some time googling for technical articles/sample code on the subject - and try to find specific PL/SQL related sample code too.

  • Consuming web services with Attachments

    Hello,
    I need to consume a web service with attachements (mime type) from sap was j2ee 7.0 (nw2004s).
    When I try to generate the web service deployable proxy using nwds (version 7.0.06), I get the following error message
    "Invalid WSDL or WSDL not found, please specify different WSDL.."
    Removing references to"wsi:swaRef" from wsdl, above error is not displayd and wsdl is correctly processed
    <complexType name="ArrayOf_tns2_swaRef">
    - <sequence>
      <element maxOccurs="unbounded" minOccurs="0" name="swaRef" nillable="true" type="wsi:swaRef" />
      </sequence>
      </complexType>
    Unfortunately, we have not been able to find any SAP documentation (online help, oss note,,,) describing if SAP WAS Java 7.0 supports this standard.
    Has anybody already worked with Web Services with attachments ?
    Thanks in advace,
    Regards
    Berta

    hi berta,
    http://help.sap.com/saphelp_nw04/helpdata/en/5e/ea656273b74cf386a1f29fc55721fd/frameset.htm
    HTTP error 406 when consuming a Web Service with attachment
    let me know u need any further info
    bvr

  • Problem consuming web service with basic authentication

    Hello,
    I've set up a web service with basic authentication. Although I have to log in before being able to open the overview page of the web service in the Web Service Navigator, the response I get after sending a request is:
    Authority check failed
    I get this response in the Web Service Navigator as well as when consuming the web service via standalone proxy classes.
    The following is strange, too: It is not possible to change  authentication in the generated logical port. It is set to "none". I changed it via the XML file where I added the properties "AuthenticationMethod" (value "BasicAuth") and "AuthenticationMechanism" (value "HTTP"). But I got the above response anyway.
    Thanks for your help!
    Regards

    I used basic authentication for my web service.
    I was able to obtain a hardcopy of the logfiles in the meantime. The invocation of the web service is stored there with the following error messages:
    <i>SOAP Runtime: Exception message: Schwerer Prozessierungsfehler macht eine SOAP-Fault-Behandlung erforderlich
    SOAP Runtime: SOAP Fault exception occurred in program CL_SOAP_RUNTIME_SERVER========CP in include CL_SOAP_RU NTIME_SERVER... [the picture is cut here]</i>
    In addition to that I found a thread in SDN that dealt with exactly the same problem:
    Web Service Homepage: Authority check failed
    But I have the same problem like Kimberly Carmack (the last post on the second page). We do not have that role in our system.

  • Consuming web services with JDeveloper

    Hi everyone, Im trying to consume a web service from an Oracle database 9.2.0.6, which has Java 1.3.1. I started using JDeveloper 10.1.2 with sdk 1.4, but when ever I tried to deploy into the database a bunch of libraries had to be pointed in order to successfully load it into the database, and besides it never worked.
    I assumed that it was for the java versions, since in the database I have an older one. I then downloaded java 1.3.1 in my PC and when I compiled my code (defining a 1.3.1 profile before to point to javaw in 1.3.1 version) but when I tried to execute I get the error (Unsupported major.minor version 48.0). I read that this happens according to the VM version.
    I decided to move then to JDeveloper 9i, but when creating my stub and uploading it to the database, it keeps asking to add libraries which some of them I don't know where are (oracle/bali, oracle/jsp..etc)
    What do I need to generate my stub correctly and then deploying it to database? What versions for Jdev and Java SDK do I need to get it working correctly?

    One solution to this problem is to make sure that the complex type you are using in yous service interface do implement the JAVA Bean as per the spec (at least Oracle's interpretation of it).
    You need to have getter/setter for all members and you need to have an empty ctor() to create new instances of your objects. In some cases, the design time let you get by, but the runtime fails in the code generation.
    In your case, the 'Task' class may have some issue.
    Hope it helps,
    -eric

  • Error consuming Web service with object hierarchy

    I am creating a Web reference to a Web service deployed on JBoss application server. Incidentally, I am able to consume this Web service and run a client against it in .NET. Sun Java Studio Creator has a problem with one of methods in my Web service.
    As far as I can tell from my experimentation, the problem lies in the fact that the JavaBean returned from the Web service extends another JavaBean (rather than Object). When I flatten the value object in question, I am able to run the same Web service method in Studio Creator.
    I encountered the following post on this forum: http://swforum.sun.com/jive/thread.jspa?forumID=123&threadID=49056. It appears to describe a similar problem. I tried to follow the instructions in that forum by upgrading the JWSDP version (to 1.5) to no avail. I continue to receive the following error when trying to test the Web Service method after creating a Web Service reference in Creator.
    The relevant error appears to be
    deserialization error: deserialization error: unexpected XML reader state. expected: END but found: START: entityID (where entityID is one of the attributes of the object being returned by the Web Service, which is defined in that object's parent class).
    InvocationTargetException com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.invokeMethod(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.access$500(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$4.run(Unknown Source) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) java.awt.EventQueue.dispatchEvent(EventQueue.java:454) java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) java.awt.EventDispatchThread.run(EventDispatchThread.java:100) null sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:324) com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.invokeMethod(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.access$500(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$4.run(Unknown Source) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) java.awt.EventQueue.dispatchEvent(EventQueue.java:454) java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) java.awt.EventDispatchThread.run(EventDispatchThread.java:100) Runtime exception; nested exception is: deserialization error: deserialization error: unexpected XML reader state. expected: END but found: START: entityID com.sun.xml.rpc.client.StreamingSender._handleRuntimeExceptionInSend(StreamingSender.java:248) com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:230) webservice.carmanagerservice.CarManager_Stub.findAllAsArray(CarManager_Stub.java:358) webservice.carmanagerservice.CarManagerServiceClient.carmanagerserviceFindAllAsArray(CarManagerServiceClient.java:35) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:324) com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.invokeMethod(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.access$500(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$4.run(Unknown Source) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) java.awt.EventQueue.dispatchEvent(EventQueue.java:454) java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) java.awt.EventDispatchThread.run(EventDispatchThread.java:100) deserialization error: deserialization error: unexpected XML reader state. expected: END but found: START: entityID com.sun.xml.rpc.encoding.SOAPDeserializationContext.deserializeMultiRefObjects(SOAPDeserializationContext.java:82) com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:163) webservice.carmanagerservice.CarManager_Stub.findAllAsArray(CarManager_Stub.java:358) webservice.carmanagerservice.CarManagerServiceClient.carmanagerserviceFindAllAsArray(CarManagerServiceClient.java:35) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:324) com.sun.rave.websvc.ui.ReflectionHelper.callMethodWithParams(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.invokeMethod(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg.access$500(Unknown Source) com.sun.rave.websvc.ui.TestWebServiceMethodDlg$4.run(Unknown Source) java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:178) java.awt.EventQueue.dispatchEvent(EventQueue.java:454) java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions targetNamespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" xmlns:intf="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns1="urn:CarManager" xmlns:tns2="http://common.ejb.application.jetson.datasourceinc.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><wsdl:types><schema targetNamespace="http://common.ejb.application.jetson.datasourceinc.com" xmlns="http://www.w3.org/2001/XMLSchema"><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType abstract="true" name="InfoBase"><sequence><element name="primaryKey" nillable="true" type="xsd:long"/><element name="filterType" nillable="true" type="xsd:short"/><element name="userID" nillable="true" type="xsd:string"/><element name="lastUpdateDate" nillable="true" type="xsd:dateTime"/><element name="entityID" nillable="true" type="xsd:long"/></sequence></complexType><complexType name="BusinessException"><sequence><element name="scriptMessage" nillable="true" type="xsd:string"/><element name="errorCode" type="xsd:int"/></sequence></complexType></schema><schema targetNamespace="urn:CarManager" xmlns="http://www.w3.org/2001/XMLSchema"><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="CarInfo"><complexContent><extension base="tns2:InfoBase"><sequence><element name="year" nillable="true" type="xsd:int"/><element name="make" nillable="true" type="xsd:string"/><element name="model" nillable="true" type="xsd:string"/></sequence></extension></complexContent></complexType><complexType abstract="true" name="List"><sequence><element name="empty" type="xsd:boolean"/></sequence></complexType></schema><schema targetNamespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" xmlns="http://www.w3.org/2001/XMLSchema"><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/><complexType name="ArrayOf_tns1_CarInfo"><complexContent><restriction base="soapenc:Array"><attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:CarInfo[]"/></restriction></complexContent></complexType></schema></wsdl:types>
    <wsdl:message name="createRequest">
    <wsdl:part name="in0" type="tns1:CarInfo"/>
    </wsdl:message>
    <wsdl:message name="findByPrimaryKeyResponse">
    <wsdl:part name="findByPrimaryKeyReturn" type="tns1:CarInfo"/>
    </wsdl:message>
    <wsdl:message name="removeRequest">
    <wsdl:part name="in0" type="tns1:CarInfo"/>
    </wsdl:message>
    <wsdl:message name="findByPrimaryKeyRequest">
    <wsdl:part name="in0" type="xsd:long"/>
    </wsdl:message>
    <wsdl:message name="updateRequest">
    <wsdl:part name="in0" type="tns1:CarInfo"/>
    </wsdl:message>
    <wsdl:message name="createResponse">
    <wsdl:part name="createReturn" type="tns1:CarInfo"/>
    </wsdl:message>
    <wsdl:message name="removeResponse">
    </wsdl:message>
    <wsdl:message name="findAllAsArrayResponse">
    <wsdl:part name="findAllAsArrayReturn" type="impl:ArrayOf_tns1_CarInfo"/>
    </wsdl:message>
    <wsdl:message name="findAllAsArrayRequest">
    </wsdl:message>
    <wsdl:message name="updateResponse">
    <wsdl:part name="updateReturn" type="tns1:CarInfo"/>
    </wsdl:message>
    <wsdl:message name="BusinessException">
    <wsdl:part name="fault" type="tns2:BusinessException"/>
    </wsdl:message>
    <wsdl:portType name="CarManager">
    <wsdl:operation name="remove" parameterOrder="in0">
    <wsdl:input message="impl:removeRequest" name="removeRequest"/>
    <wsdl:output message="impl:removeResponse" name="removeResponse"/>
    <wsdl:fault message="impl:BusinessException" name="BusinessException"/>
    </wsdl:operation>
    <wsdl:operation name="create" parameterOrder="in0">
    <wsdl:input message="impl:createRequest" name="createRequest"/>
    <wsdl:output message="impl:createResponse" name="createResponse"/>
    <wsdl:fault message="impl:BusinessException" name="BusinessException"/>
    </wsdl:operation>
    <wsdl:operation name="update" parameterOrder="in0">
    <wsdl:input message="impl:updateRequest" name="updateRequest"/>
    <wsdl:output message="impl:updateResponse" name="updateResponse"/>
    <wsdl:fault message="impl:BusinessException" name="BusinessException"/>
    </wsdl:operation>
    <wsdl:operation name="findByPrimaryKey" parameterOrder="in0">
    <wsdl:input message="impl:findByPrimaryKeyRequest" name="findByPrimaryKeyRequest"/>
    <wsdl:output message="impl:findByPrimaryKeyResponse" name="findByPrimaryKeyResponse"/>
    <wsdl:fault message="impl:BusinessException" name="BusinessException"/>
    </wsdl:operation>
    <wsdl:operation name="findAllAsArray">
    <wsdl:input message="impl:findAllAsArrayRequest" name="findAllAsArrayRequest"/>
    <wsdl:output message="impl:findAllAsArrayResponse" name="findAllAsArrayResponse"/>
    <wsdl:fault message="impl:BusinessException" name="BusinessException"/>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="CarManagerServiceSoapBinding" type="impl:CarManager">
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="remove">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="removeRequest">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:input>
    <wsdl:output name="removeResponse">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:output>
    <wsdl:fault name="BusinessException">
    <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="create">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="createRequest">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:input>
    <wsdl:output name="createResponse">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:output>
    <wsdl:fault name="BusinessException">
    <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="update">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="updateRequest">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:input>
    <wsdl:output name="updateResponse">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:output>
    <wsdl:fault name="BusinessException">
    <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="findByPrimaryKey">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="findByPrimaryKeyRequest">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:input>
    <wsdl:output name="findByPrimaryKeyResponse">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:output>
    <wsdl:fault name="BusinessException">
    <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="findAllAsArray">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="findAllAsArrayRequest">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:input>
    <wsdl:output name="findAllAsArrayResponse">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:output>
    <wsdl:fault name="BusinessException">
    <wsdlsoap:fault encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService" use="encoded"/>
    </wsdl:fault>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="CarManagerService">
    <wsdl:port binding="impl:CarManagerServiceSoapBinding" name="CarManagerService">
    <wsdlsoap:address location="http://w2k3-vs-msmolyak:7223/jetson-axis/services/CarManagerService"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>

  • From CC&B, consume web service with Integrated Windows Authentication

    Most of the web services to be consumed from CC&B are exposed by external applications under Integrated Windows Authenticaton. Our CC&B 2.3 is running on Bea Weblogic on AIX 6.1.
    We need to find out, how CC&B can obtain a ticket (kerberos) in this context. Already checked documentation : XAI Best Practices, OUAF Framework Security Overview.Thanks.

    For the system to function properly you would need to configure both your Web Server and your Application (CC&B) Server. Since the authentication is done by your webLogic, you would first need to configure your Windows AD to recognise the WebLogic Server to accept the communication and transfer of tokens (TGS, TGT) betwen user,weblogic and AD.
    Kerberos authentication in a Microsoft AD enviroronment is dependant on a SPN (Service Principal Name). Therefore your Weglogic host must have a user account and enabled for Kerberos within your AD.
    The following link provides detailed steps for SSO for Weblogic (Windows & Unix) with AD
    [http://download-llnw.oracle.com/docs/cd/E13222_01/wls/docs81/secmanage/sso.html]
    Secondly, since the authroization is done by your application server, you will need to import the user accounts using LDAP and configure their rghts.

  • Consuming Web Services with Web Dynpro Java

    Hi All,
    I've been searching around for a weblog that would describe building a web dynpro java app that consumes a web service. Ideally, I'm looking for something that has at least two views.
    Does anyone know of good weblogs that address this?
    Thanks!
    Roman D.

    Have a look at the https://www.sdn.sap.com/irj/sdn/developerareas/webdynpro?rid=/webcontent/uuid/5b77db42-0a01-0010-d7ba-8aa375593dd3">tutorial [original link is broken] [original link is broken].
    Armin

  • Consuming web service with with a custom class parameter in web dynpro

    Hi,
    I have developed a web service. It is tested an it runs fine. The webservice is retrieving and returning Data Transfer Objects (POJOS). I have made the model-context binding, then the view controller - component controller binding with the input parameters for one method of the web service.
    In an input field I have set the value to a attribute of the DTO. (This appears: Request_CreateProductGroup.CreateProductGroup.ProductGroupDTO.CompText)
    When I run the Application I get following error:
    com.sap.tc.webdynpro.model.webservice.base.exception.BaseModelRuntimeException: No object for mandatory target role 'ProductGroupDTO' of model class 'CreateProductGroup' with cardinality '1' maintained
        at com.sap.tc.webdynpro.model.webservice.base.model.BaseGenericModelClass.getRelatedModelObject(BaseGenericModelClass.java:392)
        at com.sap.tc.webdynpro.model.webservice.gci.WSTypedModelClass.getRelatedModelObject(WSTypedModelClass.java:77)
        at com.asstec.ticketingsystem.models.CreateProductGroup.getProductGroupDTO(CreateProductGroup.java:46)
        at com.asstec.ticketingsystem.components.wdp.IPublicProductGroupService$IProductGroupDTONode.doSupplyElements(IPublicProductGroupService.java:549)
        at com.sap.tc.webdynpro.progmodel.context.Node.supplyElements(Node.java:406)
        ... 71 more
    I dont have any idea what is wrong. I´ve added the jar with the classes to the java build path as well as to project references.
    Please help me.
    Regards
    Flo
    Edited by: Florian Schäuble on Nov 20, 2008 12:01 PM

    Hi Florian,
    did you get your issue solved already?
    I yes, could you pleae post your solution?
    Thank you in advance and kind regards, Patrick.

  • Consuming Web Service with Flash 5

    Is there any way of implementing this? If so, are there any
    documents/livedocs for flash 5....

    Hi Florian,
    did you get your issue solved already?
    I yes, could you pleae post your solution?
    Thank you in advance and kind regards, Patrick.

  • Client app to consume web service with security

    I need to write a simple client to access a WS.
    Things I can not do
    Modify the server
    Add external jars
    The client will be part of a command line call and will run as a stand alone.
    I've been searching all day and have found hundreds of vague, overly complex examples, mostly based on SOAPHandler (which tells me I need to install server components which I cannot do)
    I grasp the general requirements but am having difficulty figuring out how to add the security elements to the header.
    What do I need to do to add the username and password tokens to the header?
    This is where I am so far.
    package findingLetter;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    import javax.xml.namespace.QName;
    import javax.xml.soap.MessageFactory;
    import javax.xml.soap.SOAPBody;
    import javax.xml.soap.SOAPBodyElement;
    import javax.xml.soap.SOAPConnection;
    import javax.xml.soap.SOAPConnectionFactory;
    import javax.xml.soap.SOAPElement;
    import javax.xml.soap.SOAPEnvelope;
    import javax.xml.soap.SOAPException;
    import javax.xml.soap.SOAPHeader;
    import javax.xml.soap.SOAPMessage;
    public class getPOC {
        public getPOC() {
            super();
        public List<String> lookup(String lenderid, String url, String user, String pw) throws SOAPException {
            List<String> contactInfo = new ArrayList<String>();
            SOAPMessage message = MessageFactory.newInstance().createMessage();
            SOAPHeader header = message.getSOAPHeader();
            header.detachNode();
            SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
            envelope.setAttribute("namespace","http://www.siebel.com/xml/FHA%20Lender%20Summary%20Request%20IO");
            SOAPBody body = message.getSOAPBody();
            QName bodyName = new QName("LenderSummaryRequestIo");
            SOAPBodyElement bodyElement = body.addBodyElement(bodyName);
            SOAPElement symbol = bodyElement.addChildElement("Institution");
            symbol.addTextNode(lenderid);
            SOAPConnection connection = SOAPConnectionFactory.newInstance().createConnection();
            SOAPMessage response = connection.call(message, url);
            connection.close();
                    SOAPBody responseBody = response.getSOAPBody();
                    SOAPBodyElement responseElement = (SOAPBodyElement)responseBody.getChildElements().next();
                    SOAPElement returnElement = (SOAPElement)responseElement.getChildElements().next();
                    if(responseBody.getFault()!=null){
                        System.out.println(returnElement.getValue()+" "+responseBody.getFault().getFaultString());
                    } else {
                        System.out.println(returnElement.getValue());
                    try {
                        System.out.println(getXmlFromSOAPMessage(message));
                        System.out.println(getXmlFromSOAPMessage(response));
                    } catch (IOException e) {
                        e.printStackTrace();
            return contactInfo;
        private static String getXmlFromSOAPMessage(SOAPMessage msg) throws SOAPException, IOException {
            ByteArrayOutputStream byteArrayOS = new ByteArrayOutputStream();
            msg.writeTo(byteArrayOS);
            return new String(byteArrayOS.toByteArray());

    Below is the code to add security header.
    public List<String> lookup(String lenderid, String url, String user, String pw) throws SOAPException { 
          SOAPHeader header = message.getSOAPHeader();
               if (header == null) {
                     header = envelope.addHeader();
                SOAPElement headerElement = createSecurityHeader(uName, pWord);
                soapHeader.addChildElement(headerElement);.................
    private static SOAPElement createSecurityHeader(String uName,String pWord) throws SOAPException {
           SOAPElement UsernameToken = null;
           SOAPFactory sFactory = SOAPFactory.newInstance();
           UsernameToken = sFactory.createElement("wsse:UsernameToken", "", WS);
           SOAPElement Username = sFactory.createElement("wsse:Username","", WS);
           Username.setValue(uName);
           UsernameToken.addChildElement(Username);
           SOAPElement Password = sFactory.createElement("wsse:Password","",WS);
           Password.setValue(pWord);
           QName qname = new QName("","Type");
           Password.addAttribute(qname,"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText");
           UsernameToken.addChildElement(Password);
           SOAPElement wsseSecurity = sFactory.createElement("wsse:Security","",WS);
           wsseSecurity.addChildElement(UsernameToken);
          return wsseSecurity;

Maybe you are looking for