WEB SERVICES with XML

Hi friends,
Kindly let me know whate is web services, how to start work on that.
My client requirement for couple of objects is:
1. Create a web service which can perform the following actions:
a. Read the XML input file.
b. Perform the action defined in the XML file and create/update/query the business objects in SAP. The service should be scalable for change in data model, if the xml file contains different attributes, it should interpret and perform the appropriate actions
c. Output the required data as xml file based on the definition, which is defined in XML file or template
HOW we can resolve this issue. Kindly suggest me .
Thanks in advance.
Regards,
Sreenivas

Hi
Mainly we can say to access SAP using Internet Explorer.
For webservice :
http://help.sap.com/saphelp_nw04/helpdata/en/d6/f9bc3d52f39d33e10000000a11405a/content.htm
And this would be a nice blog for you
SAP NetWeaver BI 7.0: How to create a WebService with deep input structure

Similar Messages

  • PL SQL Web Service with XML output - Remove the declaration from the proces

    Using JDeveloper to create PL/SQL web services it inserts the generic declaration
    <?xml version="1.0" encoding="UTF-8" ?>. I want to remove this line from the payload.
    Here is the entire payload. Why is this inserted and how do I get rid of it.
    <?xml version="1.0" encoding="UTF-8" ?>
    - <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    - <SOAP-ENV:Body>
    - <SOAP-ENV:Fault>
    <faultcode>SOAP-ENV:Server.Exception:</faultcode>
    <faultstring>java.sql.SQLException: java.sql.SQLException: ORA-04068: existing state of packages has been discarded ORA-04063: package body "FDC_API.PVR_IPS_TICKET" has errors ORA-06508: PL/SQL: could not find program unit being called ORA-06512: at line 1</faultstring>
    <faultactor>/pvr_ora-pvr_tickets-context-root/Pvr2ips</faultactor>
    </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>rvice, my payload has the

    We can generate jaxws from 11.1.2.0 onwards using This is now provided by the TopLink web service provider builder, which can be via the TopLink DBWS provider wizard from JDeveloper since the 11.1.2.0.0 release
    1.4.4 Database Web Services (DBWS)
    http://docs.oracle.com/cd/E23943_01/doc.1111/e26045/general.htm#CHDIEEHG
    Hope that heps
    Regards,
    Sunil P

  • Compile build.xml with Ant for web service with annotations

    Hi Friends,
    I have a web service with annotations, using javax.annotation.PostConstruct, and javax.annotation.PreDestroy.
    I have a build.xml to create a EAR for this web service.
    When I run the ant task, the build complete successfully but the .war file cannot be deployed on the WLS server. Taking a closer look, I see that the required files such as, webservices.xml, weblogic.xml, weblogic-webservices.xml, Provision.wsdl files are not generated.
    Following is the build.xml file:
    <?xml version="1.0" encoding="windows-1252" ?>
    <project default="jwsc">
    <property file="build.properties"/>
    <property name="weblogic.jar.classpath"
    value="C:/bea_jDev/wlserver_10.3/server/lib"/>
    <property name="oimclient.jar.classpath"
              value="C:/_data/Project_Dc/OIM_jars" />
         <property name="com.jar.classpath" value="C:/JDeveloper/mywork/Service_Test/lib" />
    <taskdef name="jwsc" classname="weblogic.wsee.tools.anttasks.JwscTask">
    <classpath>
    <path id="weblogic.classpath">
    <pathelement path="WEBLOGIC_HOME"/>
    <fileset dir="${weblogic.jar.classpath}">
    <include name="**/*.jar"/>
    </fileset>
    </path>
    </classpath>
    </taskdef>
    <target name="all" depends="clean,build-service,deploy"></target>
    <target name="build-service">
         <jwsc srcdir="${src.home}" destdir="ear_directory" >
    <classpath>
    <path id="oim.classpath">
    <pathelement path="OIM_HOME"/>
    <fileset dir="${oimclient.jar.classpath}">
    <include name="**/*.jar"/>
    </fileset>
    <fileset dir="${com.jar.classpath}">
    <include name="**/*.jar"/>
    </fileset>
    </path>
    </classpath>
    <jws file="${jws.home}" type="JAXWS" />
    </jwsc>
    </target>
    <target name="deploy">
    <!--add wldeploy task here -->
    </target>
    <target name="clean">
    <delete dir="output" />
    </target>
    </project>
    Can you please point out what else is to be done and where exactly am I going wrong in writing the build.xml file.
    Let me know if some else information is required.

    This is what I get when I run the ant task:
    Buildfile: C:\JDeveloper\mywork\ProvisioningService_Test2\Provision\resource\build.xml
    build-service:
    [jwsc] JWS: processing module /com/fox/provision/webservice/endpoint/impl/ProvisionEndPointImpl
    [jwsc] Parsing source files
    [jwsc] Parsing source files
    [jwsc] 1 JWS files being processed for module /com/.../provision/webservice/endpoint/impl/ProvisionEndPointImpl
    [jwsc] [JAM] Warning: failed to resolve class org.apache.xmlbeans.XmlObject
    [jwsc] [JAM] Warning: failed to resolve class com.bea.xml.XmlObject
    [jwsc] [JAM] Warning: failed to resolve class javax.xml.rpc.holders.Holder
    [jwsc] JWS: C:\..\...\..\...\code\ProvisioningService\src\com\...\provision\webservice\endpoint\impl\..EndPointImpl.java Validated.
    [jwsc] Processing 1 JAX-WS web services...
    [jwsc] warning: Specified AnnotationProcessorFactory, 'com.sun.istack.ws.AnnotationProcessorFactoryImpl', not found on search path.
    warning: No annotation processors found but annotations present.
    2 warnings
    [jwsc] Compiling 2 source files to C:\DOCUME~1\....\LOCALS~1\Temp\_lsgijm
    [jwsc] Building jar: C:\..\...\..\...\code\ProvisioningService\src\com\...\provision\webservice\deploy\ear_directory\com\fox\provision\webservice\endpoint\impl\...EndPointImpl.war
    [jwsc] Created JWS deployment outputFile: C:\..\...\..\...\code\ProvisioningService\src\com\...\provision\webservice\deploy\ear_directory\....\...\provision\webservice\endpoint\impl\..EndPointImpl.war
    [jwsc] [EarFile] Application File : C:\..\...\..\...\code\ProvisioningService\src\com\.....\provision\webservice\deploy\ear_directory\META-INF\application.xml
    [AntUtil.deleteDir] Deleting directory C:\DOCUME~1\....\LOCALS~1\Temp\_lsgijm
    BUILD SUCCESSFUL
    Total time: 7 seconds
    Due to some limitations, I edited the path in the build.xml files.
    Please let me know what can be done. Thanks.
    Edited by: user9112073 on Nov 22, 2011 9:52 PM

  • Calling Web Service with SOAP header from BPEL

    Hi,
    I am calling a web service (with header information) from BPEL. In the Invoke activity, i created a header variable to pass the header information.
    But, when i test the BPEL service, invoke activity fails because the header information is not being passed.
    Below is the error message (copied from clipboard).
    +<messages><input><Invoke_1_getsubinfo_InputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="parameters"><getsubinfoElement xmlns="http://ws/its/tabs/webservices/SingleRowWS/SingleRowWS.wsdl">+
    +<pSubnoin>+
    +<insubno>12345678</insubno>+
    +</pSubnoin>+
    +</getsubinfoElement>+
    +</part></Invoke_1_getsubinfo_InputVariable></input><fault><bindingFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>exception on JaxRpc invoke:+
    start fault message:+
    Internal Server Error (Caught exception while handling request: javax.xml.rpc.JAXRPCException: Not authenticated user)+
    *:end fault message*</summary>
    +</part></bindingFault></fault></messages>+
    As said, no header information is visible in the Invoke activity.
    Please provide help for the above issue.
    -MJ

    Hello Patrick,
    Thanks for the response. I am using normal assign activity to assign values to the header variable as shown below. HeadMT is the header variable which is passed in the invoke activity.
    +<assign name="Assign_Header">+
    +<copy>+
    +<from expression="'tkl12'"/>+
    +<to query="/ns1:LOGIN_INFO/ns1:USER_NAME" variable="*HeadMT*"+
    part="payload"/>
    +</copy>+
    +<copy>+
    +<from expression="'tkl123'"/>+
    +<to query="/ns1:LOGIN_INFO/ns1:PASSWORD" variable="*HeadMT*"+
    part="payload"/>
    +</copy>+
    +<copy>+
    +<from expression="'TKL'"/>+
    +<to query="/ns1:LOGIN_INFO/ns1:CHANNEL_ID" variable="*HeadMT*"+
    part="payload"/>
    +</copy>+
    +</assign>+
    The expected input by the web service is as below with the header information highlighted.
    +<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://ws/webservices/RowWS/RowWS.wsdl">+
    +*<soap:Header>*+
    +*<ns1:LOGIN_INFO>*+
    +*<ns1:USERNAME>tkl12</ns1:USERNAME>*+
    +*<ns1:PASSWORD>tkl123</ns1:PASSWORD>*+
    +*<ns1:CHANNEL_ID>TKL</ns1:CHANNEL_ID>*+
    +*</ns1:LOGIN_INFO>*+
    +*</soap:Header>*+
    +<soap:Body>+
    +<ns1:substatusElement>+
    +<ns1:pInparam>+
    +<ns1:insubno>7674988</ns1:insubno>+
    +</ns1:pInparam>+
    +</ns1:substatusElement>+
    +</soap:Body>+
    +</soap:Envelope>+

  • Issue with calling external web service with authentication details ...

    Hi,
         I am facing a deployment issue with Oracle ESB. I am trying to call an external Web Service with authentication from ESB SOAP Service. It is working fine with my local ESB version 10.1.3.3.0 Build PCBPEL_10.1.3.3.0_GENERIC_070615.0525; however it is getting an error at our development ESB version 10.1.3.3.1 Build PCBPEL_10.1.3.3.1_GENERIC_RELEASE.
         I am getting following error.
    An unhandled exception has been thrown in the ESB system. The exception reported is: "org.collaxa.thirdparty.apache.wsif.WSIFException: exception during SOAP invoke: Server was unable to process request. ---> Object reference not set to an instance of an object.; nested exception is: javax.xml.rpc.soap.SOAPFaultException: Server was unable to process request. ---> Object reference not set to an instance of an object. at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.populateFaultMessage(WSIFOperation_JaxRpc.java:3086) at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeOperation(WSIFOperation_JaxRpc.java:1728) at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.invokeRequestResponseOperation(WSIFOperation_JaxRpc.java:1473) at com.collaxa.cube.ws.wsif.providers.oc4j.jaxrpc.WSIFOperation_JaxRpc.executeRequestResponseOperation(WSIFOperation_JaxRpc.java:1196) at oracle.tip.esb.server.common.wsif.WSIFInvoker.executeOperation(WSIFInvoker.java:867) at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:770) at oracle.tip.esb.server.common.wsif.WSIFInvoker.nextService(WSIFInvoker.java:790) at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.nextService(OutboundAdapterService.java:208) at oracle.tip.esb.server.service.impl.outadapter.OutboundAdapterService.processBusinessEvent(OutboundAdapterService.java:127) at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(InitialEventDispatcher.java:118) at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(InitialEventDispatcher.java:95) at oracle.tip.esb.server.dispatch.BusinessEvent.raise(BusinessEvent.java:1424) at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(EventUtils.java:112) at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(EsbRouterSubscription.java:307) at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(EventDispat
         Could one of you please help me out to understand why it is happining.
    Thanks in advance.
    Jyotirmoy.

    Hi Mahesh,
    One you are missing is authentication token or credentials.
    Please refer to the following articles.
    http://www.cleverworkarounds.com/2014/02/05/tips-for-using-spd-workflows-to-talk-to-3rd-party-web-services/
    A Series of articles related to Web Service in SPD Workflow
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 1
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 2
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 3
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 4
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 5
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 6
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 7
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 8
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 9
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 10
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 11
    Trials or tribulation?
    Inside SharePoint 2013 workflows–Part 12
    Please don't forget to mark it answered, if your problem resolved or helpful

  • Calling Reporting Services Web Service with jQuery possible?

    Hi,
    is it possible to call the Reporting Services Web Service with jQuery? If yes, can someone post me a small example?
    Background:
    My plan is to create a html with a form which is also uploaded then into the reportserver. I open this html later by clicking a link in a report (with gotoURL open.window). The report opens the html inclusive the overtaken of some additional parameters
    (reportname, reportdescription). These parameters I will use in the html-form as defaultvalues for the corresponding input-text-fields. Now the user can make some changes (i.e. the decription). With a click on a button I will send the new description to
    the Reporting Services Web Service by using the SetProperties method, closing the html-window and reload the report. Important is that I want to upload the html also into the reportserver itself.
    I have already found how to consume a web service via jQuery but with the Reporting Services Web Service I did not get it running in my tests.
    I have referenced to the following jQuery.js: http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
    Here you can see my tests I made with the results:
    $.ajax({
    type: 'POST',
    url: 'http://<..>/ReportServer/ReportService2010.asmx/ListChildren',
    data: {'ItemPath':'/','Recursive':false},
    complete: function(xData, status) {
    $('p').html($(xData.responseXML).text()); // result
    $("#divStatus").text( status ); // status }
    I got a NULL response with Status success. But where are the items?
    Another test which should response only one value was that:
    $.ajax({
    type: "POST",
    contentType: "text/xml; charset=utf-8",
    url: "http://<..>/ReportServer/ReportService2010.asmx/GetItemType",
    data: {"Item":"/Development"}, // Development is a Folder in my Reportserver-Root
    dataType: "xml",
    success: function (msg) {
    $("#divResult").html(msg.responseXML);
    error: function (data, status, error) {
    $("#divResult").html("WebSerivce unreachable<br> <br>" + data.responseXML + "<br> <br>(" + error + ")");
    Here I got an [object Error]
    And here my last test:
    var soapMessage = '<?xml version="1.0" encoding="utf-8"?>\
    <soap:Envelope \
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" \
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">\
    <soap:Body>\
    <GetItemType xmlns="http://www.microsoft.com/sql/ReportingServer">\
    <ItemPath>/Development</ItemPath>\
    </GetItemType>\
    </soap:Body>\
    </soap:Envelope>';
    $.ajax({
    type: "POST",
    contentType: "text/xml; charset=utf-8",
    url: http://<..>/ReportServer/ReportService2010.asmx?wsdl,
    data: soapMessage,
    dataType: "xml",
    success: processSuccess,
    error: processError
    function processSuccess(data, status, req) {
    if (status == "success")
    $("#response").text($(req.responseXML).find("Type").text());
    function processError(data, status, req) {
    alert(req.responseText + " " + status);
    Here I got an "Undefined error"
    Can anyone help me?
    Thanks
    René Illner

    Hi Rene,
    I have one vbscript class to call web services. May be if you need you can use it.
         dim ws
         set ws = new webservice
         ws.url = "http://servername/ReportServer/ReportService2010.asmx"
         ws.method = "MethodName"
         ws.parameters.Add "Parameter1", "Param1 Desc.."
         ws.parameters.Add "Parameter2","[email protected].."
         ws.execute
         set ws = nothing
    '------web service calling class
    class WebService
      public Url
      public Method
      public Response
      public Parameters
      public function execute()
        dim xmlhttp
        Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
        xmlhttp.open "POST", Url & "/" & Method, false
        xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        xmlhttp.send Parameters.toString
        response = xmlhttp.responseText
        set xmlhttp = nothing
      end function
      Private Sub Class_Initialize()
        Set Parameters = new wsParameters
      End Sub
      Private Sub Class_Terminate()
        Set Parameters = Nothing
      End Sub
    End class
    class wsParameters
      public mCol
      public function toString()
        dim nItem
        dim buffer
        buffer = ""
        for nItem = 1 to Count
          buffer = buffer & Item(nItem).toString & "&"
        next
        if right(buffer,1)="&" then
          buffer = left(buffer,len(buffer)-1)
        end if
        toString = buffer
      end function
      public sub Clear
        set mcol = nothing
        Set mCol = CreateObject("Scripting.Dictionary")
      end sub
      public sub Add(pKey,pValue)
        dim newParameter
        set newParameter = new wsParameter
        newParameter.Key = pKey
        newParameter.Value = pValue
        mCol.Add mCol.count+1, newParameter
        set newParameter = nothing
      end sub
      public function Item(nKey)
        set Item=mCol.Item(nKey)
      end function
      public function ExistsXKey(pKey)
        dim nItem
        for nItem = 1 to mcol.count
          if mCol.Item(nItem).key = pKey then
            ExistsXKeyword = true
            exit for
          end if
        next
      end function
      public sub Remove(nKey)
        mCol.Remove(nKey)
      end sub
      public function Count()
        Count=mCol.count
      end function
      Private Sub Class_Initialize()
        Set mCol = CreateObject("Scripting.Dictionary")
      End Sub
      Private Sub Class_Terminate()
        Set mCol = Nothing
      End Sub
    end class
    class wsParameter
       public Key
       public Value
       public function toString()
         toString = Key & "=" & Value
       end function
    end class
    Regards, RSingh

  • Web services with JAXB

    Hi All,
    I am new to Web services with JAXB in ECLIPS.
    When I tried to unmarshal the XML file, I am getting the following exception.
    javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"order"). Expected elements are <{http://webservices/}read>,<{http://webservices/}readResponse>
         at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent
    xml , schema and java class are in follow.
    Please help me to solve this issue.
    Mohseni Rad.
    ----------------------------------po.xsd-----------------------------------------
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="order" type="OrderType"/>
    <xsd:complexType name="OrderType">
    <xsd:sequence>
    <xsd:element name="shipTo" type="xsd:string"/>
    <xsd:element name="billTo" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    ------------------------------------po.xml----------------------------------------
    <?xml version="1.0" encoding="UTF-8"?>
    <order>
    <shipTo>shipto</shipTo>
    <billTo>billto</billTo>
    </order>
    ------------------TestWS.java---------------------
    import java.io.FileInputStream;
    import java.io.IOException;
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBElement;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Unmarshaller;
    import wsclient.*;
    public class TestWs {
         public static void main(String[] args) {
              try{
                   SecondWebServices webService = new SecondWebServicesService
    .getSecondWebServicesPort();
                   JAXBContext jctx = JAXBContext.newInstance("wsclient");
                   Unmarshaller unmarshaller = jctx.createUnmarshaller();
                   FileInputStream fl = new FileInputStream( "etc//po.xml" );
         JAXBElement<?> order = (JAXBElement<?>)unmarshaller.unmarshal( fl );
                   OrderType orderType = (OrderType)order.getValue();
                   webService.read( orderType);
              }catch (JAXBException je) {
                   je.printStackTrace();
              catch (IOException ioe) {
                   ioe.printStackTrace();
    }

    Hi,
    When you are using JAX-WS, there is a tool wsimport, with which you are going to generate the artifacts required to implement the web service.
    When you pass the WSDL as a parameter to the wsimport tool, it will be create the required beans also(JAXB Objects).
    So need of any other external implementation of JAXB when you are working with JAXWS
    Thanks,

  • Calling web service with basic authentication from EP "unauthorized"

    Hello,
    I need to call a .NET web service with basic authentication on the IIS from my portal application (no http proxy between portal and IIS). But always I get the following exception:
    <b>com.sap.engine. services.webservices.jaxm.soap.accessor. NestedSOAPException:
    Problem in server response: [Unauthorized].</b>
    I'm using the following code for calling the .NET web service:
    <b>...</b><i>Licence_GetList lParameter = new Licence_GetList();
    lParameter.setStatus(CEnvironment.TransformStatus_WebService(search));
    ILicenceManager lLicMan = (ILicenceManager) PortalRuntime.getRuntimeResources().getService("LicenceManager");
    ILicenceManager lLicManSecure = lLicMan.getSecurisedServiceConnection(request.getUser());
    Licence_GetListResponse lGetListResponse = lLicManSecure.Licence_GetList(lParameter);</i><b>...</b>
    I've also configured a http system in the portal system landscape using the following parameters:
    <i>Authentication Method : Basic Authentication
    Authentication Type : Server
    User Mapping Type : admin,user</i>
    The user mapping is also personalized for this system!
    What's wrong? Please help! This is really urgent!
    Kind Regards
    Joerg Loechner

    Hello Renjith,
    here is a small cutout of my "portapp.xml";
    <services>
      <service alias="LicenceManager" name="LicenceManager">
        <service-config>
          <property name="className" value="de.camelotidpro.
                 pct.xi.scm.webservice.LicenceManager"/>
          <property name="startup" value="false"/>
          <property name="WebEnable" value="false"/>
          <property name="WebProxy" value="true"/>
          <property name="SecurityZone" value="de.camelotidpro.
                 pct.xi.scm.webservice.LicenceManager/
                   DefaultSecurity"/>
        </service-config>
        <service-profile>
          <property name="SystemAlias" value="LicMan_NET"/
        </service-profile>
      </service>
    </services>
    I'm using a http system created in the system landscape (alias LicMan_NET). But it seems that this system is not used by the web service call (No error, even if I delete this system!). The code used to call this web service can be found at the top of this threat...
    Regards
    Joerg Loechner

  • 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.

  • Problem accessing web service: unexpected XML tag

    Hi,
    I access a web service with SOAP 1.2 via HTTP 1.1. I used wsimport on the WSDL to generate the stubs (I only use Java 6).
    The web service is a php-Script running on a web server (maybe delegates this in the background, I have no access nor intimate knowledge of the server). This script provides both the WSDL (via GET) and the service (via POST). When I use my generated client I always end up with the same exception:
    Exception in thread "main" com.sun.xml.ws.streaming.XMLStreamReaderException: unexpected XML tag. expected: {http://www.w3.org/2003/05/soap-envelope}Envelope but found: {http://schemas.xmlsoap.org/wsdl/}definitions
         at com.sun.xml.ws.streaming.XMLStreamReaderUtil.verifyTag(XMLStreamReaderUtil.java:203)
         at com.sun.xml.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:186)
         at com.sun.xml.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:163)
         at com.sun.xml.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:135)
         at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:294)
         at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:173)
         at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:88)
         at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
         at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
         at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
         at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
         at com.sun.xml.ws.client.Stub.process(Stub.java:248)
         at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:134)
         at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:244)
         at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:224)
         at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:117)
         at $Proxy45.hello(Unknown Source)
         at client.Client.main(Client.java:37)The exception occurs in the line with the first use of a service method. Somehow the service seems to issue a GET rather than a POST and ends up requesting the WSDL file which generates parsing errors.
    So the code looks something like this:
    Service service = new Service();
    ServicePort port = service.getServicePort();
    port.soSomething(); // <- exceptionThe conversation is SSL encrypted so I can't look at the conversation in Wireshark or similar tools. Maybe there is a problem because the same URL is used for both WSDL and SOAP?

    My apologies. It was a server problem.

  • Accessing external web service with non-constant URL

    Hello, all
    I am looking in the documentation on accessing external web services, but either I am looking in the wrong place, or the documentatoin is lacking info.
    My clients have several web services in the local network (regular services, not DB-based), the have the same interface, but different URL's.
    Versions of the DB are 11, 12, and 16.
    First of all, I do not see in the specs an option for a non-hardcoded URL. The logic says that this has to be possible, but I cannot find it.
    Second, I need to see an example of accessing an XML or JSon based service, I cannot find it in the specs either.
    Can anyone point me to a document with examples?
    Thank you
    Arcady

    The following will call a web service with whatever URL you pass in as the argument "myurl".  I think that is what you are looking for.
    CREATE PROCEDURE cli_test2( myurl LONG VARCHAR )
    RESULT( httpheaders long varchar, httpvalues long varchars
    URL '!myurl'
    To deal with the resulting data in XML, use the OPENXML() function.
    eg. To turn an XML list of employees that looks like this:
    <root>
    <row EmployeeID="102" Surname="Whitney" GivenName="Fran" StartDate="1984-08-28"/>
    </root>
    into a table of results, you would do this (where xmlgetemplist() is the web service call):
    CREATE OR REPLACE PROCEDURE xmlgetemplist() RESULT( httpheader long varchar, httpbody long varchar)
    URL 'http://localhost/demo/xmlEmployeeList'
    TYPE 'HTTP:GET';
    create variable res long varchar;
    -- call the web service
    select httpbody into res from xmlgetemplist() where httpheader = 'Body'
    -- extract the XML elements into a SQL result set
    select * from openXML( res, '/root/row' ) WITH ( EmployeeID INT '@EmployeeID',
           GivenName    CHAR(20) '@GivenName',
           Surname      CHAR(20) '@Surname',
           PhoneNumber  CHAR(10) '@Phone');
    To deal with the resulting data in JSON, use the sp_parse_json() procedure.
    eg.
    To turn a JSON formatted list of employees that looks like this:
    "EmployeeID": 102,
    "Surname": "Whitney",
    "GivenName": "Fran",
    "StartDate": "1984-08-28",
    "TerminationDate": null
    into a table of results, you would do this (where jsongetemplist() is the web service call):
    CREATE OR REPLACE PROCEDURE jsongetemplist() RESULT( httpheader long varchar, httpbody long varchar)
    URL 'http://localhost/demo/jsonEmployeeList'
    TYPE 'HTTP:GET';
    create variable foo long varchar;
    --call the webservice
    select httpbody into foo from jsongetemplist() where httpheader = 'Body';
    --turn the json result into a structured array of data
    -- this step is required because of less structured nature of JSON
    call sp_parse_json( 'output_array', foo);
    --extract the JSON elements from the output array into a SQL result set
    SELECT  output_array[[row_num]].EmployeeID as EmployeeID,
                   output_array[[row_num]].SurName as SurName,
                   output_array[[row_num]].GivenName as GivenName,
                   output_array[[row_num]].StartDate as StartDate,
                   output_array[[row_num]].TerminationDate as EndDate
    FROM sa_rowgenerator(1, CARDINALITY(output_array))
    Hope this helps,
    --Jason

  • Exporting to Microsoft Excel from a DataView Web Part consuming a Web Service with Parameters

    In Sharepoint Designer, I've developed a page displaying a DataView Web Part which consumes an XML Web Service with three parameters.  These parameters are passed in from a simple Form Web Part containing three input fields.  I am able to provide default values for the web service so the dataview is initially populated, and when I enter in new parameters, the web service goes back, grabs the requested data and displays in the dataview nice and slick.
    The problem I'm having is this: In Internet Explorer 7, when I right-click on the DataView Web Part and select Export to Microsoft Excel, Excel opens up, says "ExternalData_1: Getting Data..." and returns the data from the web service which applies to the default parameter values each and every time, regardless of whether I have changed the parameters on the web page, and contrary to what the DataView Web Part displays on the screen.
    Has anyone else run into this, and is there a solution to the problem?
    Best regards,
    Mark Christie

    Hi Bullish35,
     It's possible to provide single export button and export your 4 dataview webparts. Here's the modified code.
    <Script Language="Javascript">
    function isIE() // Function to Determine IE or Not
    return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
    function exportToExcel() // Function to Export the Table Data to Excel.
    var isIEBrowser = isIE();
    if(isIEBrowser== false)
    alert('Please use Internet Explorer for Excel Export Functionality.');
    return false;
    else
    var strTableID1 = "detailsTable1", strTableID2 = "detailsTable2", strTableID3 = "detailsTable3", strTableID4 = "detailsTable4";
    var objExcel = new ActiveXObject("Excel.Application");
    var objWorkBook = objExcel.Workbooks.Add;
    var objWorkSheet = objWorkBook.Worksheets(1);
    var detailsTable = document.getElementById(strTableID1);
    var intRowIndexGlobal= 0;
    for (var intRowIndex=0;intRowIndex<detailsTable1.rows.length;intRowIndex++)
    for (var intColumnIndex=0;intColumnIndex<detailsTable1.rows(intRowIndex).cells.length;intColumnIndex++)
    if(intColumnIndex != 3)
    objWorkSheet.Cells(intRowIndexGlobal+1,intColumnIndex+1) = detailsTable1.rows(intRowIndex).cells(intColumnIndex).innerText;
    intRowIndexGlobal++;
    for (var intRowIndex=0;intRowIndex<detailsTable2.rows.length;intRowIndex++)
    for (var intColumnIndex=0;intColumnIndex<detailsTable2.rows(intRowIndex).cells.length;intColumnIndex++)
    if(intColumnIndex != 3)
    objWorkSheet.Cells(intRowIndexGlobal+1,intColumnIndex+1) = detailsTable2.rows(intRowIndex).cells(intColumnIndex).innerText;
    intRowIndexGlobal++;
    for (var intRowIndex=0;intRowIndex<detailsTable3.rows.length;intRowIndex++)
    for (var intColumnIndex=0;intColumnIndex<detailsTable3.rows(intRowIndex).cells.length;intColumnIndex++)
    if(intColumnIndex != 3)
    objWorkSheet.Cells(intRowIndexGlobal+1,intColumnIndex+1) = detailsTable3.rows(intRowIndex).cells(intColumnIndex).innerText;
    intRowIndexGlobal++;
    for (var intRowIndex=0;intRowIndex<detailsTable4.rows.length;intRowIndex++)
    for (var intColumnIndex=0;intColumnIndex<detailsTable4.rows(intRowIndex).cells.length;intColumnIndex++)
    if(intColumnIndex != 3)
    objWorkSheet.Cells(intRowIndexGlobal+1,intColumnIndex+1) = detailsTable4.rows(intRowIndex).cells(intColumnIndex).innerText;
    intRowIndexGlobal++;
    objExcel.Visible = true;
    objExcel.UserControl = true;
    </Script>
    I haven't tested this. But it should work! :)Regards,
    Venkatesh R
    /* My Code Runs in Visual Studio 2010 */
    http://geekswithblogs.net/venkatx5/

  • Web services with servicegen i Weblogic 7

    I am trying to create web services with Weblogic's tool servicegen and
    ANT. It works great until I have a web service method that return a PK
    class of an EJB. I get the error "Error: bean property and public
    field found with the same name: id" (full stacktrace below). After
    some investigating I found out that it was my PK class that was the
    bad guy. But my PK class MUST have the field "id" public, otherwise
    ejbc complains...
    Am I doing anything wrong or does anyone have a solution?
    /Weasel
    webservices:
    [servicegen] Generating service "HelloWorldEJB" ...
    [servicegen] Generating XML types and serializers from ejb-jar
    (E:\java\projects\CMP20CMR-xdoclet\build\ejb\weblogic-ejb\samples-ejb.jar)
    [servicegen] weblogic.xml.schema.binding.BindingException: Error: bean
    property and public field found with the same name: id
    [servicegen]      at weblogic.ant.taskdefs.webservices.autotype.AutoTypeTask.execute(AutoTypeTask.java:356)
    [servicegen]      at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.generateService(ServiceGenTask.java:248)
    [servicegen]      at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.execute(ServiceGenTask.java:141)
    [servicegen]      at org.apache.tools.ant.Task.perform(Task.java)
    [servicegen]      at org.apache.tools.ant.Target.execute(Target.java)
    [servicegen]      at org.apache.tools.ant.Target.performTasks(Target.java)
    [servicegen]      at org.apache.tools.ant.Project.executeTarget(Project.java)
    [servicegen]      at org.apache.tools.ant.Project.executeTargets(Project.java)
    [servicegen]      at org.apache.tools.ant.Main.runBuild(Main.java)
    [servicegen]      at org.apache.tools.ant.Main.start(Main.java)
    [servicegen]      at org.apache.tools.ant.Main.main(Main.java)
    [servicegen] --- Nested Exception ---
    [servicegen] weblogic.xml.schema.binding.BindingException: Error: bean
    property and public field found with the same name: id
    [servicegen]      at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:157)
    [servicegen]      at weblogic.ant.taskdefs.webservices.autotype.EJBAutoTyper.run(EJBAutoTyper.java:100)
    [servicegen]      at weblogic.ant.taskdefs.webservices.autotype.AutoTypeTask.execute(AutoTypeTask.java:350)
    [servicegen]      at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.generateService(ServiceGenTask.java:248)
    [servicegen]      at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.execute(ServiceGenTask.java:141)
    [servicegen]      at org.apache.tools.ant.Task.perform(Task.java)
    [servicegen]      at org.apache.tools.ant.Target.execute(Target.java)
    [servicegen]      at org.apache.tools.ant.Target.performTasks(Target.java)
    [servicegen]      at org.apache.tools.ant.Project.executeTarget(Project.java)
    [servicegen]      at org.apache.tools.ant.Project.executeTargets(Project.java)
    [servicegen]      at org.apache.tools.ant.Main.runBuild(Main.java)
    [servicegen]      at org.apache.tools.ant.Main.start(Main.java)
    [servicegen]      at org.apache.tools.ant.Main.main(Main.java)
    [servicegen] --- Nested Exception ---
    [servicegen] weblogic.xml.schema.binding.BindingException: Error: bean
    property and public field found with the same name: id
    [servicegen]      at weblogic.xml.schema.binding.internal.codegen.JavaInspector.checkForFieldConflict(JavaInspector.java:384)
    [servicegen]      at weblogic.xml.schema.binding.internal.codegen.JavaInspector.addPropertiesToScalar(JavaInspector.java:345)
    [servicegen]      at weblogic.xml.schema.binding.internal.codegen.JavaInspector.fillDescriptor(JavaInspector.java:152)
    [servicegen]      at weblogic.xml.schema.binding.internal.codegen.JavaInspector.getDescriptor(JavaInspector.java:115)
    [servicegen]      at weblogic.xml.schema.binding.internal.codegen.JavaInspector.createDescriptorForClass(JavaInspector.java:90)
    [servicegen]      at weblogic.xml.schema.binding.internal.codegen.Compiler.compile(Compiler.java:121)
    [servicegen]      at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:88)
    [servicegen]      at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:101)
    [servicegen]      at weblogic.xml.schema.binding.internal.TypeMappingBuilderBase.addMapping(TypeMappingBuilderBase.java:176)
    [servicegen]      at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.addMapping(ComponentAutoTyper.java:85)
    [servicegen]      at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:113)
    [servicegen]      at weblogic.ant.taskdefs.webservices.autotype.EJBAutoTyper.run(EJBAutoTyper.java:100)
    [servicegen]      at weblogic.ant.taskdefs.webservices.autotype.AutoTypeTask.execute(AutoTypeTask.java:350)
    [servicegen]      at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.generateService(ServiceGenTask.java:248)
    [servicegen]      at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.execute(ServiceGenTask.java:141)
    [servicegen]      at org.apache.tools.ant.Task.perform(Task.java)
    [servicegen]      at org.apache.tools.ant.Target.execute(Target.java)
    [servicegen]      at org.apache.tools.ant.Target.performTasks(Target.java)
    [servicegen]      at org.apache.tools.ant.Project.executeTarget(Project.java)
    [servicegen]      at org.apache.tools.ant.Project.executeTargets(Project.java)
    [servicegen]      at org.apache.tools.ant.Main.runBuild(Main.java)
    [servicegen]      at org.apache.tools.ant.Main.start(Main.java)
    [servicegen]      at org.apache.tools.ant.Main.main(Main.java)
    BUILD FAILED
    E:\java\projects\CMP20CMR-xdoclet\script\build.xml:498:
    weblogic.xml.schema.binding.BindingException: Error: bean property and
    public field found with the same name: id

    Web services can only be published to BEA if you install Apache SOAP on BEA and use the Apache SOAP option of JDeveloper. The J2EE Web Services implementation framework is specific to Oracle9iAS.
    The PL/SQL Web Services server implementation is based on the J2EE Web Services option and as a result is not really portable to BEA.
    To publish a PL/SQL Web service on BEA with JDeveloper you would have to write the Java wrapper code to invoke the stored procedure using standard JDBC and then publish that Java class as a Web service using Apache SOAP. Then if you had Apache SOAP installed on BEA you would be set.
    Portability of Web services implementations is a big feature coming with JAX-RPC - currently what most vendors have is interoperability between implementations because of things like SOAPBuilders and WS-I. When JAX-RPC becomes part of J2EE 1.4 roughly in June and vendors start putting out implementations on it you should get closer to portability.
    In the meantime, the easiest way to get portability is to use the same SOAP server on both servers - Apache SOAP is a good example.
    Hope this helps.
    Mike

  • Web Service with database

    Dear All,
    I'm new to java web service. Can anyone guide me on how to setup the environment to start developing my web service?
    I need to create a web service with login function. What client is more easy for me to call login service?

    You can download Java Web Services Developer Pack 1.3 and tutorial at http://java.sun.com/webservices.
    The Java Web Services Developer Pack (Java WSDP) is a free integrated toolkit you can use to build, test and deploy XML applications, Web services, and Web applications with the latest Web service technologies and standards implementations. The tutorial has numerous code examples to get you started on develop, deploy and invoke your own web service using JAX-RPC. You can use the environment provided by tutorial to start developing your web service.
    Thanks,
    -Arun

  • How to create document/literal web services with WLS7

    How do you create document/literal web services with WLS7 ( not workshop)
    - Is it possible with servicegen and stateless EJBs as the backend component?
    The default is RPC/Soap-encoded is there anyway to craft the web-services.xml
    to make it document/literal
    - Is it possible with the JMS-implemented web services - have not tried this yet
    - Is there another mechanism?

    That would be the <web-service> element in the web-services.xml file, of course.
    "Michael Wooten" <[email protected]> wrote:
    >
    Hi Rich,
    Try adding a style="document" attribute to the starting <web-service>
    element.
    The might be a way to get <servicegen> to do this for you, but I haven't
    found
    it yet :-)
    Regards,
    Mike Wooten
    "Rich Muth" <[email protected]> wrote:
    How do you create document/literal web services with WLS7 ( not workshop)
    - Is it possible with servicegen and stateless EJBs as the backend component?
    The default is RPC/Soap-encoded is there anyway to craft the web-services.xml
    to make it document/literal
    - Is it possible with the JMS-implemented web services - have not tried
    this yet
    - Is there another mechanism?

Maybe you are looking for

  • How to delete photos from a collection

    Hi, The fact that I can't delete a photo when I'm browsing a collection is now one of the few things that really hampering my LR experience. The issue occurs even more often than it needs to because I often need to open several photos in Photoshop fr

  • Can you upgrade Acrobat 9 Standard from a "bundle" license?

    Can you upgrade Acrobat 9 Standard to Acrobat XI Standard if you have a "bundle" license?  The Acrobat 9 Standard CD envelope has a serial number that must be used to install the software.

  • SCSFileDownloadServlet fails: User 'guest' does not have sufficient priv.

    Hi, We have an ADF application that is using SCSFileDownloadServlet to get documents from UCM. We added the servlet in web.xml and we are using this link to download the documents: /getfile?adapterName=our_adapter_name&dDocName=document12345&dID=1234

  • Problems with data controls from java classes in JSF pages.

    Hi! We have a problem in our Application that we are developing with JSF pages using Data Controls generated from facades java classes. When we running a page in debug mode and the page are loading, if we insert a breakpoint in the first line of meth

  • N80 Bluetooth has stopped working?

    Hi I was using my N80 3g Connection via bluetooth for my laptop. This was working fine no problems. I lost the signal due to bad reception then I found that since this time I can not get my bluetooth to work. The small icon on the screen says that it