Setting connect timeout and read timeout on a Web service Client

How can I set timeout values for a SOAP Web service client?
I don't want to set timeout values for the complete JVM, but on a call-by-call basis. I was looking for something like:
  SOAPConnection c = ....
  c.setTimeout(...);Anyone?

Thanks again fsato4, but i still can not resolve my problem. I must use the java 1.2.2 and i think the package java.nio.charset is not supported. I have read documentation about the use of encodings but i can not understand clearly what is happening in my application. Let me explain what i am thinking and ask you some things.
I send a message from the client in VB using soap toolkit, obviously in UTF-8 format. When the message is received in my Java Web service, Do i need to do something in order to my Java string understands the message?.
What i am doing is to obtain the byte array with the following line:
byte[] utf8Bytes = strXmlFile.getBytes("UTF8");
And then i use the constructor of the string as follows:
String ostr = new String (utf8Bytes,"UTF8"); I think that in this point i have my string in a valid representation for my server (Sun solaris) Rigth?. And finally i use my new string to pass that value to my function which expects a java.lang.String, but the result is that all the special characters are replaced.
Just after of the new String line, i write my string to an Buffered Writer pointed to a FileOutputStream (just for Doublecheck) using the "ISO8859_1" encoding and for my surprise i can read very well that xml in my browser and the special characters are displayed in a correct way. Could you please explain me why?
Thanks for your help.

Similar Messages

  • Setting timeout of web service client

    I created a web service client using the java proxy for
    a web service by running my web service in weblogic workshop test browser and by using
    the jar file created by clicking on "Java Proxy" button.
    i am calling my web service my adding code similar to this and it works
    HelloWorld_Impl proxy = new HelloWorld_Impl();
    HelloWorldSoap soapProxy = proxy.getHelloWorldSoap();
    But, i am not sure how to set the timeout of my client programatically.
    Is there a way to do this ?
    Any help is greatly appreciated.

    Anyway,
    I figured it out myself, by looking at other posts and applying some reflection API
    HelloWorld_Impl proxy = new HelloWorld_Impl();
    HelloWorldSoap soapProxy = proxy.getHelloWorldSoap();
    // I learnt that this soapProxy is infact an object of HelloWorldSoap_Stub class
    HelloWorldSoap_Stub myStub = (HelloWorldSoap_Stub)proxy.getHelloWorldSoap();
    BindingInfo bInfo = (BindingInfo)myStub._getProperty("weblogic.webservice.bindinginfo");
    bInfo.setTimeout(5); //secs
    myStub._setProperty("weblogic.webservice.rpc.timeoutsecs", "5"); // secs
    // finally you can call the methods of the web service
    soapProxy.Hello();
    Please be aware that, upon time out, you would get an exception : <class = java.rmi.RemoteException
    cause = javax.xml.rpc.soap.SOAPFaultException: javax.xml.rpc.JAXRPCException:java.net.SocketTimeoutException: Read timed out.>
    Also, my env : Weblogic 8.1 SP4

  • Web service client timeout

    Hi,
    I'm trying to set a timeout on my web service client. But its not working. Your tutorials do not seem to address this.
    I am using weblogic 10.3.2, with Java 1.6.
    ============
    Properties propSys = System.getProperties();
    propSys.put( "weblogic.webservice.UseWebLogicURLStreamHandler", "true" );
    Stub stub = (Stub)portObject;
    BindingInfo bindingInfo = (weblogic.webservice.binding.BindingInfo)stub._getProperty("weblogic.webservice.bindinginfo");
    bindingInfo.setTimeout(1);
    Iterator itr = stub._getPropertyNames();
    while (itr.hasNext()){
    Object element = itr.next();
    log("\n properties that can be set: "+element);
    stub._setProperty("weblogic.webservice.rpc.timeoutsecs","1");
    ===========
    I've also tried setting the transaction-timeout and the remove-client-timeout in the weblogic-ear-jar.xml.
    ===========
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>ExternalEntryEJB</ejb-name>
    <transaction-descriptor>
    <trans-timeout-seconds>1</trans-timeout-seconds>
    </transaction-descriptor>
    <enable-call-by-reference>True</enable-call-by-reference>
    <jndi-name>ExternalEntry</jndi-name>
    <remote-client-timeout>1</remote-client-timeout>
    </weblogic-enterprise-bean>
    <weblogic-enterprise-bean>
    <ejb-name>InternalEJB</ejb-name>
    <local-jndi-name>Internal</local-jndi-name>
    <enable-call-by-reference>True</enable-call-by-reference>
    <remote-client-timeout>1</remote-client-timeout>
    <transaction-descriptor>
    <trans-timeout-seconds>1</trans-timeout-seconds>
    </transaction-descriptor>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    ===========
    in case it matters, I am using weblogic.ant.taskdefs.webservices.clientgen.ClientGenTask as the clientgen task in my build.xml
    ============
    <clientgen autotype="False" ear="${dist}/${app.earname}" warName="${servlet.warname}" packageName="MyPackage.webservices.client"
    keepgenerated="False" useServerTypes="True" clientJar="${dist}/MyAppClient.jar">
    <classpath refid="build.classpath.builddir"/>
    </clientgen>
    ============
    I am testing by putting a Thread.sleep(75000) in the method which is called in the internal EJB. But the method runs to completion and returns the reply object after 90 seconds or so (it normally takes about 12 seconds), but does not timeout.
    I've been told that because it is a web services client, the remote-client-timeout will be ineffective. I've also been told that because the EJBs run in the same JVM, the transaction-timeout will be ineffective. Is this so?
    Thanks,
    Walter

    Can you change the clientgen task to weblogic.wsee.tools.anttasks.ClientGenTask this is for jax-rpc 1.1.
    <taskdef name="clientgen"
    classname="weblogic.wsee.tools.anttasks.ClientGenTask" />
    ((Stub)port)._setProperty(weblogic.wsee.transport.connection.timeout,2);
    ((Stub)port)._setProperty(weblogic.wsee.transport.read.timeoutt,2);
    Hope that helps.

  • How to implement web service client timeout

    I'm trying to implement a web service client using JAX-RPC specification and the client is generated by clientgen utility. We are using weblogic8.1(sp5).
    How do I control the connection timeout and data transmission timeout? I have tried:
    BindingInfo.setTimeout() method and stub._setProperty("weblogic.webservice.rpc.timeoutsecs", "1" /* secs */);
    and they don't seem to be working...
    I have searched the web service documentation and didn't found any mentioning on this. Can someone shred some light on this?
    Thanks.
    Ren
    null

    Hi,
    I had a problem too for setting the timeout of a webservice client. but i didn't find any thing on this.
    But there is a work around for this see if it suits you but for this you have to use Apache AXIS webservice api to generate the client in that Api you have the Stub.timeOut() function to over come this problem
    Cheers !!
    Vivek:-)

  • Timeout error at J2EE Web Service client

    i have a .NET web service. a J2EE web service client deployed on Websphere application server 5.1 is invoking it. some services on .NET end take a long time to return a value. in such cases, the following error occurs on J2EE end. please suggest a solution.
    faultCode: Server.generalException
    faultString: java.net.SocketTimeoutException: Read timed out
    faultActor: null
    faultDetail:
    java.net.SocketTimeoutException: Read timed out
    at com.ibm.ws.webservices.engine.WebServicesFault.makeFault(WebServicesFault.java:150)
    at com.ibm.ws.webservices.engine.transport.http.HTTPSender.invoke(HTTPSender.java:200)
    at com.ibm.ws.webservices.engine.PivotHandlerWrapper.invoke(PivotHandlerWrapper.java:212)
    at com.ibm.ws.webservices.engine.WebServicesEngine.invoke(WebServicesEngine.java:255)
    at com.ibm.ws.webservices.engine.client.Connection.invokeEngine(Connection.java:685)
    at com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:611)
    at com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:441)
    at com.ibm.ws.webservices.engine.client.Stub$Invoke.invoke(Stub.java:662)

    Hi, am also getting time out .. excepiton in client
    i added the following code inside stub class constructer...
    System.out.println("GET TIME OUT ::::"+super.getTimeout());
    super.setTimeout(77777);
    System.out.println("GET TIME OUT AFTER SET::"+super.getTimeout());
    compilation success. However am getting runtime exception after the sop.
    GET TIME OUT ::::0
    javax.xml.rpc.ServiceException: WSWS5014E: Error instantiating generated Stub class.
    can you please tell me how u solved the issue.
    Thanks
    Bogi

  • WCF Service and Sharepoint Form library : How i can read a access a form libray and query a item from file name and read form xml in WCF service ?

    WCF Service and Sharepoint Form library : How i can read or access a form libray and query a item from file name and read form xml in WCF service ?
    Ahsan Ranjha

    Hi,
    In SharePoint 2013, we can take use of REST API or Client Object Model to access the SharePoint objects like Form Library.
    SharePoint 2013 REST API
    http://msdn.microsoft.com/en-us/library/office/dn450841(v=office.15).aspx
    http://blogs.technet.com/b/fromthefield/archive/2013/09/05/working-with-sharepoint-list-data-odata-rest-and-javascript.aspx
    SharePoint 2013 Client Object Model
    http://msdn.microsoft.com/en-us/library/office/fp179912(v=office.15).aspx
    http://msdn.microsoft.com/en-us/library/office/jj193041(v=office.15).aspx
    With the retrieved file, we can then use XmlDocument object to parse it and get the values you want:
    http://weblogs.asp.net/jimjackson/opening-and-reading-an-xml-file-in-a-document-library
    http://stackoverflow.com/questions/1968809/programatically-edit-infopath-form-fields
    Best regards
    Patrick Liang
    TechNet Community Support

  • Creating And Deploying A JWSDP Web Service Client to Weblogic 8.1

    This setup produces an EAR containing a message driven bean in a jar file. When the MDB receives a message
    it checks to see if there is any data in a database table and if so calls the web service with that data. These instructions
    are for MS-Windows environments.
    In my setup I have:
    the weblogic domain at c:\b2b80
    the jwsdp at c:\apps\jwsdp-1.3
    extra jar files for the app server in c:\b2b80\lib
    the main weblogic installation at c:\apps\weblogic810\
    1> Download the the JWSDP version you wish to use and install it. (In this example I'm using 1.3)
    2> Create a project structure for you client like this:
         /project
              /earbuild
                   /META-INF
              /ejbbuild
                   /META-INF
              /ejbsource
              /wssource
    3> in the /project directory you will need a build.xml file that looks something like this: (the ant build targets are described at the end of this document)
    ==============================================================
    <?xml version="1.0"?>
    <project name="svcowner" default="buildall" basedir=".">
         <property file="classpath.settings"/>
         <property name="wssource" value="wssource"/>
         <property name="ejbsource" value="ejbsource"/>
         <property name="compileejbdest" value="ejbbuild"/>
         <property name="earbuilddest" value="earbuild"/>
         <property name="jarfilename" value="svcownerejb.jar"/>
         <property name="earfilename" value="svcowner.ear"/>
         <property name="debug" value="true"/>
         <property name="deprecation" value="true"/>
         <!-- this runs the create.bat which has all of the wscompile parameters -->
         <target name="cmdline_wscompile">
              <exec executable="wssource/create.bat"/>
         </target>
         <target name="compileejb" depends="cmdline_wscompile">
              <javac debug="${debug}" srcdir="${wssource}" classpath="${BUILD_CLASSPATH}"
                   destdir="${compileejbdest}" includes="**/*.java" deprecation="${deprecation}"/>
              <javac debug="${debug}" srcdir="${ejbsource}" classpath="${BUILD_CLASSPATH}"
                   destdir="${compileejbdest}" includes="**/*.java" deprecation="${deprecation}"/>
         </target>
         <target name="buildejbjar" depends="compileejb">
              <jar jarfile="${earbuilddest}/${jarfilename}" manifest="${compileejbdest}/META-INF/MANIFEST.txt">
                   <fileset dir="${compileejbdest}">
                        <include name="**/*.*"/>
                   </fileset>
              </jar>
         </target>
         <target name="buildear" depends="buildejbjar">
              <jar jarfile="${earfilename}">
                   <fileset dir="${earbuilddest}">
                        <include name="**/*.*"/>
                   </fileset>
              </jar>
         </target>
         <target name="deploy">
              <copy file="${earfilename}" todir="../../config/domain/applications"/>
         </target>
         <target name="buildall" description="build everything" depends="buildear, deploy">
         </target>
    </project>
    ==============================================================
    4> You need a matching classpath.settings file in the same directory, something like this:
    ==============================================================
    BUILD_CLASSPATH=/b2b80/lib/saaj-impl.jar;/b2b80/lib/saaj-api.jar;/b2b80/lib/jaxrpc-api.jar;/b2b80/lib/jaxrpc-impl.jar;c:/b2b80/lib/jaxrpc-spi.jar/b2b80/classes/;/b2b80/classes;/apps/weblogic810/server/lib/weblogic.jar;/apps/weblogic810/server/lib/weblogic_sp.jar;/apps/weblogic810/server/lib/xmlx.jar;/apps/weblogic810/server/ext/weblogic-tags.jar;/apps/weblogic810/server/ext/jdbc/oracle/920/ojdbc14_g.jar;/b2b80/lib/log4j.jar
    ==============================================================
    5> In the /project/earbuild/META-INF directory you need an application.xml file:
    ==============================================================
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE application PUBLIC '-//Sun Microsystems, Inc.//DTD J2EE Application 1.2//EN' 'http://java.sun.com/j2ee/dtds/application_1_2.dtd'>
    <application>
    <display-name>svcownerb2b</display-name>
    <description>Application description</description>
    <module>
    <ejb>svcownerejb.jar</ejb>
    </module>
    </application>
    ==============================================================
    6> The /project/ejbsource directory contains the source for the client application. In my case this is a message driven bean (note that code below isn't complete). The most important part of the code below is the setting of the javax.xml.soap.MessageFactory system property.
    System.getProperties().put("javax.xml.soap.MessageFactory","com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl");
    If you don't do this a weblogic class will be used and the code will fail.
    ==============================================================
    package com.svcclient.ejb.svcownershipment;
    import java.text.*;
    import java.io.*;
    import java.sql.*;
    import java.util.Properties;
    import javax.ejb.*;
    import javax.jms.*;
    import javax.naming.*;
    import javax.sql.DataSource;
    import com.svcclient.util.*;
    import org.w3c.dom.*;
    import com.svcclient.websvc.svcowner.*;
    import javax.xml.rpc.Stub;
    public class SvcOwnerShipmentSubscriberMDB implements MessageDrivenBean, MessageListener
    private transient MessageDrivenContext mdc = null;
    private static Context context;
    private final static String CLASSNAME = "SvcOwnerShipmentSubscriberMDB";
    private String DATASOURCE_JNDI = "svcclient.b2b";
    private static DataSource mDS = null;
    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    public SvcOwnerShipmentSubscriberMDB()
    System.getProperties().put("javax.xml.soap.MessageFactory","com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl");
    try
    if (context == null)
    context = new InitialContext() ;
    if (mDS == null)
    mDS = (DataSource)context.lookup(DATASOURCE_JNDI);
    catch (NamingException ex)
    ex.printStackTrace();
    catch(Exception ex)
    ex.printStackTrace();
    public void onMessage(javax.jms.Message message)
    TextMessage msg = null;
    String ordernumber = null;
    String lineid = null;
    try
    if (message instanceof TextMessage)
    msg = (TextMessage) message;
    ordernumber = msg.getStringProperty("ordernumber");
                   // the JMS message contains a property that is an order number
    createAndSendXML(ordernumber);
    catch (Throwable ex)
    ex.printStackTrace();
    private void createAndSendXML(String ordernumber)
    if(ordernumber==null)
    return;
    PreparedStatement statement = null;
    ResultSet rset = null;
    java.sql.Connection conn = null;
    try
    conn = DBHelper.getConnection(mDS,"SvcOwnerShipmentSubscriberMDB.createAndSendXML");
    statement = conn.prepareStatement("select * from ..."); // you SQL here
    statement.setString(1,ordernumber);
    rset = statement.executeQuery();
    StringBuffer data = new StringBuffer();
    data.append("<? version=\"1.0\"?>\n");
    data.append("<shippingRequest>\n");
    while(rset.next())
    data.append("\t<order_date>"+dateFormat.format(new java.util.Date(rset.getTimestamp("SCHEDULE_SHIP_DATE").getDate()))+"</order_date>\n");
    data.append("\t<brand_name>svcclient</brand_name>\n");
    data.append("\t<shipRequestType>Sale</shipRequestType>\n");
    data.append("</shippingRequest>\n");
              // call the web service with the data from the database
    DataExchanger_Impl impl = new DataExchanger_Impl();
    Stub stub = (Stub)(impl.getDataExchangerSoap());
    DataExchangerSoap dx = (DataExchangerSoap)stub;
    String resp = dx.exchangeData("svcclient", "mypassword", "Sales", data.toString());
    catch(SQLException sqle)
    sqle.printStackTrace();
    catch(Exception e)
    e.printStackTrace();
    finally
    try
    if (rset != null)
    rset.close();
    if (statement != null)
    statement.close();
    if (conn != null)
    conn.close();
    catch(Exception x){}
    public void ejbCreate() { System.out.println("In SvcOwnerShipmentSubscriberMDB.ejbCreate()"); }
    public void setMessageDrivenContext(MessageDrivenContext mdc) { this.mdc = mdc; }
    public void ejbRemove() throws javax.ejb.EJBException { System.out.println("In SvcOwnerShipmentSubscriberMDB.remove()"); }
    ==============================================================
    7> The /project/ejbbuild/META-INF directory needs a MANIFEST.txt file.
    Manifest-Version: 1.0
    8> The /project/ejbbuild/META-INF directory needs a ejb-jar.xml file. This just sets up the MDB which is the client.
    ==============================================================
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
    <ejb-jar>
    <display-name>SvcOwnerShipmentSubscriberMDB</display-name>
    <enterprise-beans>
    <message-driven>
    <display-name>SvcOwnerShipmentSubscriberMDB</display-name>
    <ejb-name>SvcOwnerShipmentSubscriberMDB</ejb-name>
    <ejb-class>com.svcclient.ejb.svcownershipment.SvcOwnerShipmentSubscriberMDB</ejb-class>
    <transaction-type>Container</transaction-type>
    <message-driven-destination>
    <destination-type>javax.jms.Topic</destination-type>
    <subscription-durability>NonDurable</subscription-durability>
    </message-driven-destination>
    </message-driven>
    </enterprise-beans>
    <assembly-descriptor>
    <container-transaction>
    <method>
    <ejb-name>SvcOwnerShipmentSubscriberMDB</ejb-name>
    <method-name>onMessage</method-name>
    <method-params>
    <method-param>javax.jms.Message</method-param>
    </method-params>
    </method>
    <trans-attribute>NotSupported</trans-attribute>
    </container-transaction>
    </assembly-descriptor>
    </ejb-jar>
    ==============================================================
    9> The /project/ejbbuild/META-INF directory needs a weblogic-ejb-jar.xml file.
    ==============================================================
    <?xml version="1.0"?>
    <!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN" "http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd">
    <weblogic-ejb-jar>
    <weblogic-enterprise-bean>
    <ejb-name>SvcOwnerShipmentSubscriberMDB</ejb-name>
    <message-driven-descriptor>
    <pool>
    <max-beans-in-free-pool>5</max-beans-in-free-pool>
    <initial-beans-in-free-pool>1</initial-beans-in-free-pool>
    </pool>
    <!-- JNDI Name of the Topic that the SvcOwnerShipmentSubscriberMDB listens for messages on -->
    <destination-jndi-name>jms.svcownerShipmentsTopic</destination-jndi-name>
    </message-driven-descriptor>
    </weblogic-enterprise-bean>
    </weblogic-ejb-jar>
    ==============================================================
    10> The /project/wssource directory needs a dataexchange.wsdl file. This is the WSDL describing the web service
    we want to connect to with our client.
    ==============================================================
    <?xml version="1.0" encoding="utf-8"?>
    <wsdl:definitions
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:tns="https://www.svcowner.com/mfg/DataExchange/"
    xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    targetNamespace="https://www.svcowner.com/mfg/DataExchange/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    name="">
    <wsdl:types>
    <s:schema elementFormDefault="qualified"
    targetNamespace="https://www.svcowner.com/mfg/DataExchange/">
    <s:element name="exchangeData">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="sender" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="transactionType" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="data" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    <s:element name="exchangeDataResponse">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="0" maxOccurs="1" name="exchangeDataResult" type="s:string" />
    </s:sequence>
    </s:complexType>
    </s:element>
    </s:schema>
    </wsdl:types>
    <wsdl:message name="exchangeDataSoapIn">
    <wsdl:part name="parameters" element="tns:exchangeData" />
    </wsdl:message>
    <wsdl:message name="exchangeDataSoapOut">
    <wsdl:part name="parameters" element="tns:exchangeDataResponse" />
    </wsdl:message>
    <wsdl:portType name="DataExchangerSoap">
    <wsdl:operation name="exchangeData">
    <wsdl:input message="tns:exchangeDataSoapIn" />
    <wsdl:output message="tns:exchangeDataSoapOut" />
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="DataExchangerSoap" type="tns:DataExchangerSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="exchangeData">
    <soap:operation soapAction="https://www.svcowner.com/mfg/DataExchange/exchangeData"
    style="document" />
    <wsdl:input>
    <soap:body use="literal" />
    </wsdl:input>
    <wsdl:output>
    <soap:body use="literal" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="DataExchanger">
    <wsdl:port name="DataExchangerSoap" binding="tns:DataExchangerSoap">
    <soap:address location="https://svc.svcowner.com/mfg/dataexchange.php" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    ==============================================================
    10> The /project/wssource directory needs a websvc_config.xml file. This file tells wscompile where
    to find the WSDL file and the package name for the generated classes.
    ==============================================================
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration xmlns="http://java.sun.com/xml/ns/jax-rpc/ri/config">
         <wsdl location="wssource/dataexchange.wsdl" packageName="com.svcclient.websvc.svcowner"/>
    </configuration>
    ==============================================================
    11> The /project/wssource directory needs a create.bat file. This just sets up the environment
    and calls the wscompile batch file in the JWSDP. I had to tweak the wscompile.bat file to match
    my environment as well.
    ==============================================================
    SETLOCAL
    SET WSDP=C:\apps\jwsdp-1.3\
    SET ANT_HOME=%WSDP%;apache-ant
    SET PATH=%ANT_HOME%\bin;%WSDP%jaxrpc\bin;%PATH%
    SET JAVA_HOME=c:\apps\weblogic810\jrockit81sp2_141_05
    call wscompile -gen:client -s ./wssource -keep -g -d ejbbuild wssource/websvc_config.xml
    ==============================================================
    12> The /project directory needs a build.bat file. Just a way for me to make sure my
    environment is set up right before doing the build.
    ==============================================================
    SETLOCAL
    SET ANT_HOME=c:\apps\jakarta-ant-1.4.1
    SET PATH=%ANT_HOME%\bin;%PATH%
    SET JAVA_HOME=c:\apps\weblogic810\jrockit81sp2_141_05
    call ant -buildfile build.xml %1 %2 %3 %4 %5 %6 %7 %8 %9
    ==============================================================
    13> You need to copy the following jar files from the JWSDP into a location they can be used by the
    app server during run time and also for the build process. In my set up this is c:\b2b80\lib. Note that
    these are pointed to by the file in step 4.
    c:\apps\jwsdp-1.3\jaxrpc\lib\jaxrpc-api.jar
    c:\apps\jwsdp-1.3\jaxrpc\lib\jaxrpc-impl.jar
    c:\apps\jwsdp-1.3\jaxrpc\lib\jaxrpc-spi.jar
    c:\apps\jwsdp-1.3\saaj\lib\saaj-api.jar
    c:\apps\jwsdp-1.3\saaj\lib\saaj-impl.jar
    14> You must make sure that the jar file in step 13 are at the front of the classpath for the
    weblogic server. WL comes with classes that conflict with these jars.
    15> I also had to add the root ssl certificate from the partners certificate authority to the java keystore
    using the keytool because this service uses SSL:
    C:\apps\weblogic810\jrockit81sp2_141_05\jre\bin>keytool -import -keystore ..\lib\security\cacerts -alias svcownerroot -keypass password -file c:\temp\svcownerroot.cer
    ==============================================================
    So the idea is this, you run the /project/build.bat file from within the /project directory. This
    calls ant which uses the build.xml file to create everything and copy the EAR to the weblogic deployment
    directory. The default ant target is buildall.
    The cmdline_wscompile target runs the /project/wssource/create.bat file which in turn runs the wscompile.bat
    file from the jwsdp. This causes the dataexchange.wsdl file to processed and the client files to be generated.
    The generated java files go into the /project/wssource directory. The generated class files go into the
    /project/ejbbuild directory. They need to be there so the MDB can use them.
    Next the compileejb ant target compiles the MDB java file and places the resulting class file into the
    /project/ejbbuild directory.
    Next the buildejbjar ant target takes everything in the /project/ejbbuild directory and creates the ejb jar
    file that will be included in the EAR. This file is placed in the /project/earbuild directory.
    Finally the buildear ant target takes everything in the /project/ejbbuild directory and produces the EAR
    file for deployment. The EAR file is placed in the /project directory.
    The deploy task simply copies the EAR file into the weblogic domain applications directory.

    It's really the web service that determines what kind of authentication is required. You can't just use any old strategy. If the web service isn't expecting it in that form, it won't work. Typically, either HTTP BASIC Auth or WS-Security is used. You'd have to contact the people responsible for the web service to know what kind of auth it requires.

  • NPE when working with connections.xml for Web Service client

    Our ADF Web Service clients needs to read the WSDL and End point URL from connections.xml. But this is giving an Error.
    Here are the details:
    jdevloper 11.1.1.6.0
    Weblogic 10.3.5
    OWSM 11.1.1.6
    From my ADF based Application I need to call out a web service.
    For this I have built a Web Service Proxy and coded to call it from the application.
    Since the app needs to run through the development testing deployment lifecycle and hence be deployed on different environments, we need the ability allow configuration of wsdl and end point URL for the web service call without the need to recompile the app.
    We want to leverage the connections.xml for this purpose.
    http://docs.oracle.com/cd/E23943_01/web.1111/b31974/web_services.htm#autoId6
    My connection.xml looks like:
       <Reference name="MyService" className="oracle.adf.model.connection.webservice.impl.WebServiceConnectionImpl" xmlns="">
          <Factory className="oracle.adf.model.connection.webservice.api.WebServiceConnectionFactory"/>
          <RefAddresses>
             <XmlRefAddr addrType="WebServiceConnection">
                <Contents>
                   <wsconnection description="file:/C:/JDeveloper/mywork/jdev116/DeployTstCnnxtnLov/LovProxy/src/abc/lov/proxy/MyService.wsdl" service="{http://xmlns.oracle.com/Enterprise/HCM/services/MyService.1}MyService">
                      <model name="{http://xmlns.oracle.com/Enterprise/HCM/services/MyService.1}MyService" xmlns="http://oracle.com/ws/model">
                         <service name="{http://xmlns.oracle.com/Enterprise/HCM/services/MyService.1}MyService">
                            <port name="MyService_Port" binding="{http://xmlns.oracle.com/Enterprise/HCM/services/MyService.1}MyService_Binding">
                               <soap addressUrl="http://<machine:port>/PSIGW/PeopleSoftServiceListeningConnector" xmlns="http://schemas.xmlsoap.org/wsdl/soap/"/>
                               <operation name="MyServiceOperation">
                                  <soap soapAction="MyServiceOperation.v1" xmlns="http://schemas.xmlsoap.org/wsdl/soap/"/>
                                  <output name="MyService_RESP.V1"/>
                                  <input name="MyService_REQ.V1"/>
                               </operation>
                            </port>
                         </service>
                      </model>
                   </wsconnection>
                </Contents>
             </XmlRefAddr>
          </RefAddresses>
       </Reference>
    My code in the Service Client Looks like:
      @WebServiceRef
      private static MyService myservice;
                Context ctx = ADFContext.getCurrent().getConnectionsContext();
                WebServiceConnection wsc =
                    (WebServiceConnection)ctx.lookup("MyService");
                String urlString = wsc.getWsdlUrlStr();
                System.out.println("WSDL URL: "+urlString);
                myservice = wsc.getJaxWSPort(MyService.class);
                MyService_PortType port = myservice.getMyService_Port();
      ServiceRequest request = new ServiceRequest();
      ServiceResponse response = port.MyServiceOeration(request);
    The WSDL URL is being read correctly.
    Error:
    This error appears to be triggered by the code:
        myservice = wsc.getJaxWSPort(MyService.class);
    java.lang.NullPointerException
            at java.lang.Class.isAssignableFrom(Native Method)
            at oracle.j2ee.ws.common.jaxws.runtime.GenericJavaType.create(GenericJavaType.java:97)
            at oracle.j2ee.ws.common.jaxws.runtime.GenericJavaType.create(GenericJavaType.java:118)
            at oracle.j2ee.ws.common.jaxws.runtime.OperationMappingModeler.processParameters(OperationMappingModeler.java:268)
            at oracle.j2ee.ws.common.jaxws.runtime.OperationMappingModeler.processMethod(OperationMappingModeler.java:155)
            at oracle.j2ee.ws.common.jaxws.runtime.ServiceEndpointRuntimeModeler.buildRuntimeModel(ServiceEndpointRuntimeModeler.java:114)
            at oracle.j2ee.ws.client.jaxws.WsClientProxyFactory.getRuntimeMetadata(WsClientProxyFactory.java:69)
            at oracle.j2ee.ws.client.jaxws.WsClientProxyFactory.createProxy(WsClientProxyFactory.java:126)
            at oracle.j2ee.ws.client.jaxws.WsClientProxyFactory.createProxy(WsClientProxyFactory.java:106)
            at oracle.j2ee.ws.common.jaxws.ServiceDelegateImpl.getPort(ServiceDelegateImpl.java:219)
            at oracle.j2ee.ws.common.jaxws.ServiceDelegateImpl.getPort(ServiceDelegateImpl.java:249)
            at oracle.adf.model.connection.webservice.impl.WebServiceConnectionImpl.getJaxWSPort(WebServiceConnectionImpl.java:385)
            at abc.lov.proxy.MyService_PortClient.fetchDesc(MyService_PortClient.java:84)
            at abc.lov.ServiceManager.fetchEmplID(ServiceManager.java:13)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    Hi Frank,
    I got the following two lines of code just to check if WebServiceConnection was able to read the connections file alright.
                String urlString = wsc.getWsdlUrlStr();
                System.out.println("WSDL URL: "+urlString);
    I am not using urlString for further processing.
    The output is
    WSDL URL: http://<host>/PSIGW/PeopleSoftServiceListeningConnector/MyService.1.wsdl
    java.lang.NullPointerException
            at java.lang.Class.isAssignableFrom(Native Method)
            at oracle.j2ee.ws.common.jaxws.runtime.GenericJavaType.create(GenericJavaType.java:97)
            at oracle.j2ee.ws.common.jaxws.runtime.GenericJavaType.create(GenericJavaType.java:118)
    The WSDL Url pointed to is the one that I configure in the connection while deploying the App.
    Ran a test and WSDL Url is accessible by the app.

  • JAX-WS web service client and Windows integrated Security authentication

    I am currently developing a JAX-WS web service client running on WebLogic 10.3.2.0. The client is connecting to exchange web service running on IIS.
    Everything works well when EWS is configured with Http basic authentication.
    The problems started when I changed the autentication method on EWS from Http basic authentication to Windows integrated Security authentication.
    The client is then unable to authenticate to the web service. Every request made to EWS returns with the message : Invalid HTTP server response [401] - Unauthorized.
    I tried using an authenticator like this one:
    static class RetrieveWSDLAuthenticator extends Authenticator
    private String username, password;
    public RetrieveWSDLAuthenticator(String user, String pass)
    username = user;
    password = pass;
    @Override
    protected PasswordAuthentication getPasswordAuthentication()
    return new PasswordAuthentication(username, password.toCharArray());
    and setting it as the default authenticator :
    Authenticator.setDefault(new MyAuthenticator("username", "password"));
    but the method getPasswordAuthentication() was not even called.
    Is there a way to make a JAX-WS client works with Windows integrated Security ?

    WIS is not suppported on WLS JAX-WS. You'll need to use other authentication mechanisms such as http basic (which you tried already), or message-level security such as UNT, or SAML.
    Regards,
    Pyounguk

  • How to pass username and password while invoking a web service through wsdl

    Hello All,
    i am calling a web service through wsdl, but it is giving error 401. i want to know how to pass userid and password when i am invoking webservice?
    i am using NetBeans 6.1.
    i did following thing:
    First i created one web application, then i right clicked on project new->web service client, and gave the url for my wsdl.
    after that i create one main class and try to call my required operation by that wsdl.
    Thanks in advance

    Thanks dumchikov, i tried the same thing what ever you told but there is no option for security.
    when i right clicked on web service reference its open 1 window which have 2 tab one is quality of service and second is wsdl customization, then i clicked on wsdl customization. which contain Global Customization, Port Types, Port Type Operations, Port Type Faults, Binding, Binding Operations, Services, Ports and External Binding Files. it don't have security option.

  • Web service client and SSL Certificate

    Hello, everyone,
    I have a problem that has really stumped me.
    I've written a web service client for a web service that has a digital certificate. This comes in the form of a .pfx file.
    When I try send a request to the web service, I get the following:
    AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
    faultSubcode:
    faultString: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    faultActor:
    faultNode:
    faultDetail:
         {http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
         at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
         at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
         at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
         at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)
         at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
         at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
         at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
         at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
         at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
         at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
         at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
         at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
         at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
         at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
         at org.apache.axis.client.Call.invoke(Call.java:2767)
         at org.apache.axis.client.Call.invoke(Call.java:2443)
         at org.apache.axis.client.Call.invoke(Call.java:2366)
         at org.apache.axis.client.Call.invoke(Call.java:1812)
         at org.tempuri.BasicHttpBinding_IExternalServiceStub.submitAchievementBatchJob(BasicHttpBinding_IExternalServiceStub.java:531)
         at uk.gov.qcf.lrs.api.services.IExternalServiceProxy.submitAchievementBatchJob(IExternalServiceProxy.java:56)
         at uk.org.aqa.main.Main.main(Main.java:111)
    Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
         at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
         at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
         at sun.security.validator.Validator.validate(Unknown Source)
         at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)
         at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
         at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
         ... 24 more
    Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
         at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
         at java.security.cert.CertPathBuilder.build(Unknown Source)
         ... 30 more
         {http://xml.apache.org/axis/}hostname:WM8-319
    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
         at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
         at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
         at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
         at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
         at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
         at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
         at org.apache.axis.client.Call.invoke(Call.java:2767)
         at org.apache.axis.client.Call.invoke(Call.java:2443)
         at org.apache.axis.client.Call.invoke(Call.java:2366)
         at org.apache.axis.client.Call.invoke(Call.java:1812)
         at org.tempuri.BasicHttpBinding_IExternalServiceStub.submitAchievementBatchJob(BasicHttpBinding_IExternalServiceStub.java:531)
         at uk.gov.qcf.lrs.api.services.IExternalServiceProxy.submitAchievementBatchJob(IExternalServiceProxy.java:56)
         at uk.org.aqa.main.Main.main(Main.java:111)
    Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
         at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source)
         at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
         at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)
         at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)
         at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)
         at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)
         at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
         at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
         at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:186)
         at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
         at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
         at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
         ... 12 more
    Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
         at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
         at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
         at sun.security.validator.Validator.validate(Unknown Source)
         at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(Unknown Source)
         at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
         at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
         ... 24 more
    Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
         at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
         at java.security.cert.CertPathBuilder.build(Unknown Source)
         ... 30 moreI've looked onliine to try to solve this issue, and it seemed that the answer was the add the certificate to the keystore. I had a lot of issues doing this, due to the certificate being a .pfx file. However, using the following, I was able to do it:
    keytool -importkeystore -srckeystore "sandpit.pfx" -destkeystore "%JAVA_HOME2%\lib\security\cacerts" -srcstoretype pkcs12 -deststoretype jks -srcstorepass password -deststorepass anotherpassword -vHowever, I am still getting the same error. This may be because this isn't the keystore used, but it is located in the area marked as being used in the build path.
    I then looked further, and found that I may need to add:
    System.setProperty("javax.net.ssl.trustStore","myKeystore");
    System.setProperty("javax.net.ssl.trustStorePassword","myPassword");altering where appropriate. But this didn't work, and I'm thinking that this would involve a lot more code than just those two lines.
    I'm just not sure what to do, and am hoping someone can help. I didn't think it would be too big an issue to ensure my program used the certificate, but it seems to be. I thought that once it was added to the keystore, that would be it, but it appears not.
    I'm sure this isn't a rare issue, but I just lack the knowledge to make any headway. Please can someone help or point me in the right direction?
    Thank you very much in advance.
    Robin

    Sorry to bother you again with my request but I would appreciate some help with my problems.
    Nobody his using some web services who requires protection ?
    Thanks a lot.

  • Infopath 2007 and SharePoint 2007 error with Web Service Submit and Recieve

    I have an InfoPath form with code. The code submits the form to SharePoint and to SQL DB through Web Service. The form has some workflow. When form is in a "New" state if submits to SharePoint and Database through custom web service. Works fine
    from both Client and SharePoint browser form. The database ID is returned to the form and then stored in a field. In second stage of workflow additional fields are shown for Supervisor to fill out. I then have an "update" web service to update the
    database. I set all the field values in the Web service then execute both the update Web Service and the SharePoint submit. I get an error (both if running from desktop or SharePoint) Error is
    "The string '' is not a valid AllXsd value"     
    I know sometimes this happens with dates. But I've got all the dates set. The funny thing is in the first submit there are 2 dates in the second submit there is one date. All are set the same and on the first submit no problem submits correct dates to SQL
    database through web Service. Second submit has 2 Boolean fields that I also default to a value of false. I've debugged and looked at all the values and everything has a value. I use delete NIL to make sure value in Web Service is set. I can save the data
    in the form but not submit it because I get the web service error. If I save the data in form and download it and copy all the values in the XML to my Web Service and invoke the web service works fine. So there is no error in the web service. The first
    submit submits both dates and some integer values. The only difference in second is the Boolean value but it is set to default of false for all checkboxes.  I'm going out of mind trying to see what could be wrong.   Also difference with second
    is it sends in the ID of the record that was set in form by result of first submit query sending back the DB value. That value is an integer but I also set correctly.
    Susan J. Swanger

    Hi Somatco,
    According to your description, my understanding is that you got an error when you ran report with xml type datasource.
    Please set the xml datasource credential to Use Windows Authentication (integrated security). More information, please refer to the link:
    http://social.technet.microsoft.com/Forums/sqlserver/en-US/530c29ab-7ed5-4c36-816a-910c0b51f4bd/xml-data-source-unable-to-authenticate-using-windows-authentication?forum=sqlreportingservices
    Here are some similar posts for you to take a look at:
    http://www.symantec.com/business/support/index?page=content&id=TECH190935
    http://social.msdn.microsoft.com/Forums/en-US/285e4e8c-d05c-48f8-b4f3-9d87988d823e/an-error-has-occurred-during-report-processing-rsprocessingaborted-query-execution-failed-for?forum=sqlreportingservices
    In addition, as this issue is related to SQL Server Reporting, I commend you create a new thread in SQL Server Reporting forum, more experts will assist you with SQL Server Reporting.
    SQL Server Report forum:
    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/home?forum=sqlreportingservices
    I hope this helps.
    Thanks,
    Wendy
    Wendy Li
    TechNet Community Support

  • Dynamic and embeddable web service client

    Hello,
    I want to write a web service client application that can run on JSE (not requiring JEE5, J2EE 1.4, an enterprise server or anything). This should be no problem with JSE6. However, I would like the client application to run on embedded devices (cell phones, PDA's etc.) as well. So I would like to know if web service clients are supported by the embedded JAVA runtimes in such devices. One additional requirement is that the webservices will only be accessible over SSL. So all clients will need support for SSL as well.
    The other problem (and probably the more difficult one) is this: Using the WDSL file, stubs for the client can be generated. However, the WDSL files (at least the ones generated by the SUN enterprise server) contain the IP-address of the server. In the final deployment of the system the IP-address of the server will be different from the one of the development system. Secondly, the same service might be deployed on different servers and needs to be accessible from the same client. So I'm looking for a mechanism to still use stubs generated from the WDSL file, but dynamically configure the IP address of the server to which the client should connect.
    Any help here is greathly appreciated.

    Hey Rishika,
    You don't need tomcat to run a client. A web service client does not need a container and can be run without it.
    Karan

  • Obtaining the WSDL and sending a message (like Web Services)

    Hi All,
    Is it possible to use a service interface defined in XI as any other web service? Consider the following scenario.
    1. Create an async service interface (outbound) in XI (This has a message mapping and the message goes to some inbound interface). 
    2. Can we write an external application (a Java swing client or something) which can send a message to this service interface?
    3. While writing a normal web services client we specify the url of the WSDL and then send a SOAP message using some APIs.
    4. Can this be achieved in XI? If so could you provide me some links or blogs etc to have some idea about this. Also how do we specify the URL of the interface.
    5. I have seen a similar application (an HTML file) which takes the XML payload (conforming to the message type of the interface) and sends the message to the interface. In this case the URL is formed from sender namespace, server name, port etc. The name of this HTML is XIHttp_adapter.html.
    6. Can somebody give me more inputs in this direction?
    Many Thanks,
    Sandeep

    Hi Sandeep,
    The Info below should surely help you find an answer.
    If you're on WAS 6.20 and up, you can expose an RFC as a webservice directly from WAS.
    Or if you’re on Basis layer 4.6D, you'll need to use XI (or some other integration tool) to expose the RFC as a webservice.
    To do this in XI you'll need to:
    Integration Repository
    1) Import the RFC
    2) Define a message and datatype for the SOAP interface
    3) Create inbound and outbound interfaces
    4) Create maps between the RFC and SOAP messages
    5) Create an interface map
    Integration Directory
    1) Create an RFC Receiver Channel
    2) Create a SOAP Sender Channel
    3) Generate the WSDL (Tools->Define Web Service)
    You can then handoff the WSDL and a login username and password to your developer and they will have everything they need to make the WS call.
    Here are answers to a few doubts u might have:
    1) Do I need to actually create a WS that calls the RFC ? Isn’t the virtual interface exposed by the XI sufficient?
    Yes, you need to create a WS in XI that calls the RFC.
    2) If I really have to create the WS and deploy it in order to expose it with the XI, then what is my benefit of exposing it with the XI, why not just exposing it as a normal WS ?
    You don't have WAS 6.20 or up. Even if you did, you may still want to expose it using XI in order to have all of your integration go through the same application.
    3) If I expose my web service through the XI, how does the client application executes one of its methods? To which url does it have to access (the XI or the actual WS)?
    You expose a SOAP interface in XI by generating a WSDL file. This file contains all of the information a developer will need to call the webservice including the URL.
    You actually specify the URL when you generate the WSDL. Be sure to read the documentation to get the correct format because the URL that the wizard suggests isn't correct.
    Also check this Pdf for the Receiever SOAP Adapter configuration:
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/40728f7b-0401-0010-d9bc-8c73884a3789
    Also the target URL must be the URL to the WSDL. So, if you try putting it in your browser you must see the wsdl code.Please do ensure the same.....
    I hope this helps.
    Regards,
    Abhy

  • OC4J web service client and Spring

    Hello!
    I'm trying to use the Web Service client mechanism of Spring 1.2.6 in conjunction with OC4J by subclassing org.springframework.remoting.jaxrpc.JaxRpcPortProxyFactoryBean and using generated classes from soap-ui.
    Problem is that I keep getting errors like this when starting the (embedded) OC4J:
    org.springframework.beans.FatalBeanException: Could not instantiate class [at.sozvers.bva.shared.util.CommaSeparatedClassPathContext]; constructor threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'zpvPartnerAdresseWebService' defined in class path resource [onlineContext.xml]: Initialization of bean failed; nested exception is oracle.j2ee.ws.client.ServiceExceptionImpl: service: {http://oasdev1.bva.sozvers.at:8192/zpvPartnerAdresse/}PartnerAdresse does not contain port: {http://oasdev1.bva.sozvers.at:8192/zpvPartnerAdresse/}PartnerAdresse
    The WSDL:
    <?xml version="1.0" encoding="UTF-8"?><wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:ns1="http://service.zpv.esb.bva.sozvers.at" xmlns:ns2="http://error.shared.bva.sozvers.at" xmlns:ns3="http://dto.zpv.esb.bva.sozvers.at" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding" xmlns:tns="http://service.zpv.esb.bva.sozvers.at/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://service.zpv.esb.bva.sozvers.at/">
    <wsdl:types>
    <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://service.zpv.esb.bva.sozvers.at/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="lesen">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="ns1:PartnerAdresseServiceRequest"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="lesenResponse">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="ns3:ZPVPartnerAdresseDTO"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="schreiben">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="in1" nillable="true" type="ns1:PartnerAdresseServiceRequest"/>
    <xsd:element maxOccurs="1" minOccurs="1" name="in2" nillable="true" type="ns3:ArrayOfZPVAdresseDTO"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    <xsd:element name="schreibenResponse">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="ns3:ZPVResponseDTO"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://service.zpv.esb.bva.sozvers.at" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:complexType name="PartnerAdresseServiceRequest">
    <xsd:sequence>
    <xsd:element minOccurs="0" name="bisDat" type="xsd:dateTime"/>
    <xsd:element minOccurs="0" name="bkFachschluessel" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="bkInput" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="vonDat" type="xsd:dateTime"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://dto.zpv.esb.bva.sozvers.at" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:complexType name="ZPVPartnerAdresseDTO">
    <xsd:sequence>
    <xsd:element minOccurs="0" name="exceptionDTO" nillable="true" type="ns2:ExceptionDTO"/>
    <xsd:element minOccurs="0" name="responseDto" nillable="true" type="ns3:ZPVResponseDTO"/>
    <xsd:element minOccurs="0" name="zpvAdresseDTOs" nillable="true" type="ns3:ArrayOfZPVAdresseDTO"/>
    <xsd:element minOccurs="0" name="zpvPartnerStammdatenDTO" nillable="true" type="ns3:ZPVPartnerStammdatenDTO"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="ZPVResponseDTO">
    <xsd:sequence>
    <xsd:element minOccurs="0" name="exceptionDTO" nillable="true" type="ns2:ExceptionDTO"/>
    <xsd:element minOccurs="0" name="fehlerJN" nillable="true" type="xsd:boolean"/>
    <xsd:element minOccurs="0" name="zpvFehlerId" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="zpvMeldungstext" nillable="true" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="ArrayOfZPVAdresseDTO">
    <xsd:sequence>
    <xsd:element maxOccurs="unbounded" minOccurs="0" name="ZPVAdresseDTO" nillable="true" type="ns3:ZPVAdresseDTO"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="ZPVAdresseDTO">
    <xsd:sequence>
    <xsd:element minOccurs="0" name="abgabestelle" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="adresstyp" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="anschriftzusatz" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="beginn" type="xsd:dateTime"/>
    <xsd:element minOccurs="0" name="beharrungsadresse" nillable="true" type="xsd:boolean"/>
    <xsd:element minOccurs="0" name="bundeslandKennzeichen" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="ende" type="xsd:dateTime"/>
    <xsd:element minOccurs="0" name="exceptionDTO" nillable="true" type="ns2:ExceptionDTO"/>
    <xsd:element minOccurs="0" name="gebrauchKurz" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="hausnummer" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="ort" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="plz" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="postfach" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="staatkennzeichen" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="staatname" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="stocktuernummer" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="strasse" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="updatecount" nillable="true" type="xsd:int"/>
    <xsd:element minOccurs="0" name="verwendungsartKurz" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="zpvAevnummer" nillable="true" type="xsd:long"/>
    </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="ZPVPartnerStammdatenDTO">
    <xsd:sequence>
    <xsd:element minOccurs="0" name="angehoeriger" type="xsd:boolean"/>
    <xsd:element minOccurs="0" name="bkFachschluesselAngabe" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="exceptionDTO" nillable="true" type="ns2:ExceptionDTO"/>
    <xsd:element minOccurs="0" name="familienname" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="familiennameDiakritisch" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="geburtsDAT" type="xsd:dateTime"/>
    <xsd:element minOccurs="0" name="geschlechtKZ" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="isoa3Staatsbuergerschaft" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="landesstellenKennzeichen" nillable="true" type="xsd:int"/>
    <xsd:element minOccurs="0" name="namensergaenzung" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="namenskorrektur" type="xsd:boolean"/>
    <xsd:element minOccurs="0" name="staatsbuergerschaftSonderformKZ" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="stornoJN" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="titelHintenKurz" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="titelVorneKurz" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="todesDAT" type="xsd:dateTime"/>
    <xsd:element minOccurs="0" name="updatecount" nillable="true" type="xsd:int"/>
    <xsd:element minOccurs="0" name="versicherter" type="xsd:boolean"/>
    <xsd:element minOccurs="0" name="vorname" nillable="true" type="xsd:string"/>
    <xsd:element minOccurs="0" name="vornameDiakritisch" nillable="true" type="xsd:string"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:schema>
    <xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://error.shared.bva.sozvers.at" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:complexType name="ExceptionDTO"/>
    </xsd:schema>
    </wsdl:types>
    <wsdl:message name="schreibenResponse">
    <wsdl:part element="tns:schreibenResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="lesenRequest">
    <wsdl:part element="tns:lesen" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="lesenResponse">
    <wsdl:part element="tns:lesenResponse" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:message name="schreibenRequest">
    <wsdl:part element="tns:schreiben" name="parameters">
    </wsdl:part>
    </wsdl:message>
    <wsdl:portType name="PartnerAdresseServicePortType">
    <wsdl:operation name="lesen">
    <wsdl:input message="tns:lesenRequest" name="lesenRequest">
    </wsdl:input>
    <wsdl:output message="tns:lesenResponse" name="lesenResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="schreiben">
    <wsdl:input message="tns:schreibenRequest" name="schreibenRequest">
    </wsdl:input>
    <wsdl:output message="tns:schreibenResponse" name="schreibenResponse">
    </wsdl:output>
    </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="zpvPartnerAdresseBinding" type="tns:PartnerAdresseServicePortType">
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="lesen">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="lesenRequest">
    <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="lesenResponse">
    <wsdlsoap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="schreiben">
    <wsdlsoap:operation soapAction=""/>
    <wsdl:input name="schreibenRequest">
    <wsdlsoap:body use="literal"/>
    </wsdl:input>
    <wsdl:output name="schreibenResponse">
    <wsdlsoap:body use="literal"/>
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="PartnerAdresse">
    <wsdl:port binding="tns:zpvPartnerAdresseBinding" name="zpvPartnerAdresse">
    <wsdlsoap:address location="http://0.0.0.0:8192/zpvPartnerAdresse/"/>
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    The Spring configuration of the WS- bean:
    <bean id="zpvPartnerAdresseWebService" class="at.sozvers.bva.panda.m02.service.PartnerAdresseProxyFactoryBean">
    <property name="serviceInterface">
    <value>at.sozvers.bva.panda.m02.service.RemotePartnerAdresseBean</value>
    </property>
    <property name="wsdlDocumentUrl">
    <value>http://oasdev1.bva.sozvers.at:8192/zpvPartnerAdresse/main.wsdl</value>
    </property>
    <property name="namespaceUri">
    <value>http://oasdev1.bva.sozvers.at:8192/zpvPartnerAdresse/</value>
    </property>
    <property name="serviceName">
    <value>PartnerAdresse</value>
    </property>
    <property name="portName">
    <value>PartnerAdresse</value>
    </property>
    </bean>
    Does anyone have ideas or experience using Spring 1.2.6 for web service clients with oc4j 10.1.3 ?
    Thank you in advance
    Stefan

    I also tried to use "zpvPartnerAdresse" as portName, but this didn't change anything.
    Stefan

Maybe you are looking for