XI 3.0 and external Java client/web service

Hello,
I'm desperately tryin' to get an external system to work together with XI 3.0.
The setup is quite simple:
The external system is nothing but a simple Java program sending SOAP-based requests to a webservice. It is based on AXIS and is running satisfyingly when connecting directly to an appropriate Tomcat/AXIS-based web service, see the following communication.
-- local request
POST /axis/VAPService.jws HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.1
Host: 192.168.1.2:8080
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: "http://localhost/SOAPRequest"
Content-Length: 422
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
  <SOAPRequest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAPDataIn xsi:type="xsd:string">890000001</SOAPDataIn>
  </SOAPRequest>
</soapenv:Body>
</soapenv:Envelope>
-- local response
HTTP/1.1 200 OK
Set-Cookie: JSESSIONID=DFD7A00A244C18A058FCB52A8321A167; Path=/axis
Content-Type: text/xml;charset=utf-8
Date: Mon, 23 Aug 2004 06:52:47 GMT
Server: Apache-Coyote/1.1
Connection: close
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
  <SOAPRequestResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAPRequestReturn xsi:type="xsd:int">1</SOAPRequestReturn>
  </SOAPRequestResponse>
</soapenv:Body>
</soapenv:Envelope>
Now I have designed and configured simple business scenarios with XI 3.0 (synchronous as well as asynchronous). The only response I get from XI when the Java client connects ist the following:
-- remote request
POST /sap/xi/engine?type=entry HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.1
Host: <host>:<port>
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: "http://soap.org/soap"
Content-Length: 424
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
  <SOAPRequest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAPDataIn xsi:type="xsd:string">890000001</SOAPDataIn>
  </SOAPRequest>
</soapenv:Body>
</soapenv:Envelope>
-- remote response
HTTP/1.0 500 HTTP standard status code
content-type: text/xml
content-length: 1493
content-id: <[email protected]>
server: SAP Web Application Server (1.0;640)
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Header>
</SOAP:Header>
<SOAP:Body>
<SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsse="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" SOAP:mustUnderstand="1">
   <SOAP:faultcode>Client</SOAP:faultcode>
   <SOAP:faultstring></SOAP:faultstring>
   <SOAP:faultactor>http://sap.com/xi/XI/Message/30</SOAP:faultactor>
   <SOAP:faultdetail>
      <SAP:Error xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsse="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" SOAP:mustUnderstand="1">
         <SAP:Category>XIProtocol</SAP:Category>
         <SAP:Code area="PARSER">UNEXSPECTED_VALUE</SAP:Code>
         <SAP:P1>Main/@versionMajor</SAP:P1>
         <SAP:P2>000</SAP:P2>
         <SAP:P3>003</SAP:P3>
         <SAP:P4></SAP:P4>
         <SAP:AdditionalText></SAP:AdditionalText>
         <SAP:ApplicationFaultMessage namespace=""></SAP:ApplicationFaultMessage>
         <SAP:Stack>XML tag Main/@versionMajor has the incorrect value 000. Value 003 expected
         </SAP:Stack>
      </SAP:Error>
   </SOAP:faultdetail>
</SOAP:Fault>
</SOAP:Body>
</SOAP:Envelope>
I made sure the business service in the integration directory is named SOAPRequest and is using SOAP as the communication channel. As the adapter engine I chose the integration server, since it is the only option, although the SOAP adapter framework is installed (according to the SLD) and deactivated any options like header and attachment.
Upon facing the above response I also tried any kind of derivative with inserting the described tag/attribute/element versionMajor, but to no avail.
My questions are:
What do I have to do additionally to get the whole thing running, i.e. configure my external systems in the SLD, providing proxy settings?
Do I have to create web services within the Web AS (which provide some kind of facade to the XI engine using the proxy generation) and connect to these instead of directly addressing the integration engine (I'm using the URL http://<host>:<port>/sap/xi/engine?type=entry, but I also tried http://<host>:<port>/XISOAPAdapter/MessageServlet?channel=:SOAPRequest:SOAPIn, this led to a 404 not found error)?
What settings do I have to provide to see the messages the client is sending, when looking into the runtime workbench it seems as if there are no messages at all - at least from my client?
Hopefully somebody might help me out or least provide some information to get me going.
Thanks in advance.
Best regards,
T.Hrastnik

Hello Oliver,
all information I gathered so far derives from the online help for XI 3.0, to be found under http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm. There You'll find - in the last quarter of the navigation bar on the left side - sections describing the adapter engine alonside the SOAP adapter.
Additionally I went through almost all postings in this forum.
This alonside the mandatory trial-and-error approach (I did a lot of it up to date) led me to my current status, i.e. so far I haven't found any kind of (simple) tutorial or demo saying "If You want to establish a web service based connection via SOAP between external applications and XI first do this, then that ...", sadly enough :-(.
Hope that helps, any questions are always welcome, I'll try my best to answer them ;-).
Best regards,
Tomaz

Similar Messages

  • Java Client Web Service In Platform Eclipse

    Hi All
    I have created a server Web Service called LoanCalcService in VS.NET 2005, the folder contains LoanInfo.asmx that when run creates the Web Service, WSDL. Which works good.
    Now i need to send a request to the Web Service server and get a response from the LoanCalcService that it provides. To do this i must create a client in another language. I am doing this in JAVA in the Eclipse platform.
    I have tested the WSDL with the web service explorer that comes with eclipse and the program works good. But when i run the Java code in Eclipse i get this
    Error
    HTTP Status 404 - /WebServiceProject/WEB-INF/classes/localhost/LoanCalcService/LoanInfo_asmx/LoanInfoLocator.java
    type Status report
    message /WebServiceProject/WEB-INF/classes/localhost/LoanCalcService/LoanInfo_asmx/LoanInfoLocator.java
    description The requested resource (/WebServiceProject/WEB-INF/classes/localhost/LoanCalcService/LoanInfo_asmx/LoanInfoLocator.java) is not available
    Can anyone tell me please what i am missing please.
    Thank You beforehand

    You are a novice to Java and yet you expect to start out writing services?
    Good luck with that*
    *Trademark, 2006- yawmark, All Rights Reserved.                                                                                                                                                                                                                                                                                                   

  • Calling ABAP BAPIs from a JAVA client - Web Services vs. JCo

    Hi All,
    When calling BAPIs from a JAVA client, what are the pros/cons for making the call employing JCo vs web service technologies.  I understand that using SOAP would play better into the SOA theme and that there are nice tools to generate a WSDL document from a BAPI.  Aside from the obvious, are there any performance considerations and/or other major pros/cons to each
    Thanks,
    Mark

    Hi Mark,
    Have you got any information on this. If you have any information on this pls forward to me at <b>[email protected]</b> I am also having this confusion. My question is a bit deviating from your point. If we use XI when developing WDJs with WS, will it help in improving performance and maintenance.will it give any advantage if I use XI with BAPIs to connecto backend from WDJ apps. I got this confusion, becasue of a requirement to develop WDJ apps that will be accessed by 50,000 users. Somebody told client that use of XI willimprove performance.
    Any help is greatful
    Regards
    Ravindra
    Message was edited by:
            Ravindra Babu Tanguturi

  • Localhost and external IP for web services?

    I've developed a web service using NetBean5.5 (JAX-WS 2.0) and deployed it to Tomcat 5.5. To access the WSDL and XSD I use the following URLs respectively (where SERVER and PORT is the server name and port on our local network):
    http://SERVER:PORT/SampleWS/SampleService?wsdl
    http://SERVER:PORT/SampleWS/SampleService?xsd=1
    However, for external customers to access this they use an IP mapped to SERVER:PORT by our sys admin.
    They can successfully access the WSDL using this external IP in the above URL but the schemaLocation port binding elements still refer to the local machine name and port. This means they cannot execute calls on the web service.
    How do I get round this? Is this a Tomcat config setting? Or can something be done on the JAX-WS side such as dynamically generate the URLs within the WSDL?
    Any help would be much appreciated.

    This is the exact problem I've been trying to find a solution to.
    By default I create a web service a a standard class in my war project using the @WebService annotation.
    When it gets deployed and I look at the WSDL it has a schemaLocation listed that cannot be reached by clients (a hostname that is only valid on that box). In one case its localhost.localdomain and in another case it is just some name that cannot be found via dns (it probably has an entry in the host file). I'm not really in a position for changes to be made to those boxes, but I need to deploy web services to them and be able to create clients that can talk to them.
    In either case I get an error (with localhost.localdomain) I often get a connection refused as it is pointing to the client's machine which doesn't have the web services running. In the case of the server name it is a host not found.
    I tried this with JAX-WS 2.1 and it seems to work fine, but I think I'm going to be stuck with 2.0 and sjsas 9.0 u1 p1.
    How can I fix this in the war application? Can I do this via annotations? Is there info about a deployment descriptor? Any help would be greatly appreciated.
    Thanks,
    Geoff

  • 2-java clients communicate with java based web-service

    I'm new 2 web-services.
    I need to create 2-java clients(a game like chess) & communicate them through a java based web-service.
    I can create the web service.(using Netbeans getting started tutorial.only the basic stuff)
    when we create the 2-clients are those should be web-clients or are they should be normal java
    applications.
    (clients should be GUI based)
    ??

    I'm new 2 web-services.
    I need to create 2-java clients(a game like chess) & communicate them through a java based web-service.
    I can create the web service.(using Netbeans getting started tutorial.only the basic stuff)
    when we create the 2-clients are those should be web-clients or are they should be normal java
    applications.
    (clients should be GUI based)
    ??

  • Difference between using Java and Non-Java in Webi.

    Hi ,
    I have one more question requesting for an answer.
    Would like to know what is the Difference between using Java and Non-Java in Webi.
    Thank You in advance.
    Appana Ganesh.

    Hi,
    check the Information in following post, the differences are discussed there:
    http://scn.sap.com/thread/3295306
    best regards,
    Victor

  • How-to access username and password protected Java EE Web services from ADF

    The title of this post is exactly the same as this article by Frank Nimphius:
    http://www.oracle.com/technology/products/jdev/howtos/1013/protectedws/access_protected_web_services_from_adf.htm
    The article addresses the problem of securing web services using usernames and passwords, when those web services are accessed through a proxy or a data control. In the examples, the user names and passwords are specified, whether in the code or the definition of data controls. (SKING/SKING).
    In a very common scenario, users login to reach a page, for example, A.jspx, which contains a button that calls a web service, for example displayDate. Suppose that user has logged in by username/pass of (AHUNOLD/AHUNOLD) and AHUNOLD has access to the service and the page. Is there any way to pass the logged in user name and password to the webservice ? Of course we can hard-code the username in the data control definition or proxy code, but this is just one of the thousands of users who have access to the service and the authentication is not dynamic this way.
    Hope my question is clear. Wishing you all a great Christmas.
    Farbod

    Hi Frank, and happy new year.
    Are you implying that it couldn't be done declaratively? What is your suggestion for this problem? You know the problem... As I described:
    - I need to secure my web services, so when exposed, no one from inside network or the internet, can access the web service without proper permission
    - The web services are shown as web controls on jspx pages. The user has logged in before reaching the page. It is irrelevant to ask him to enter user name and password again.
    - I have user names, passwords and roles in Oracle Internet Directory (Identity Management). It provides some APIs and I can retrieve the usernames and attempt logging in programmically. But how can I get username and password from the session in ADF application?
    I guess using SAML or certificate could be the solution, but I have a problem with SAML, described here:
    Re: Webservices Security, SAML, and Identity Management (OID)
    Best Regards,
    Farbod

  • Web service handler could not called in client web service

    Hi All,
    I have two web service ServiceA & ServiceB and both implemented in weblogic.
    The ServiceA is SSL enable and protocol is https which is not published by me.
    The ServieB is my web service(wls8.1) and act as client for ServiceA.
    My problem is when i hit my service, its not able set the handler when it call ServiceA but it is invoking the service and giving application exception like authentication error.
    My service file:
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.handler.HandlerInfo;
    import javax.xml.rpc.handler.HandlerRegistry;
    import javax.xml.rpc.handler.soap.SOAPMessageContext;
    import weblogic.webservice.client.SSLAdapterFactory;
    import weblogic.webservice.client.WLSSLAdapter;
    public class HelloService {
    String wsdl = "https://188.122.123.23/RemoetService?WSDL";
    static {
    SSLAdapterFactory factory = SSLAdapterFactory.getDefaultFactory();
    WLSSLAdapter adapter = (WLSSLAdapter) factory.getSSLAdapter();
    adapter.setTrustedCertificatesFile("D:\\lib\\certs
    cacerts");
    factory.setDefaultAdapter(adapter);
    System.setProperty("weblogic.xml.encryption.verbose","true");
    System.setProperty("weblogic.xml.signature.verbose","true");
    System.setProperty("weblogic.webservice.verbose","true");
    public String sayHello(String user) {
    RemoteService_Impl service = new RemoteService_Impl(wsdl);
    RemotePortType port = service.getRemoteServicePort1();
    String namespace = service.getServiceName()
    .getNamespaceURI();
    QName portName = new QName(namespace,
    "RemoteServicePortType");
    HandlerRegistry reg = service.getHandlerRegistry();
    List handlerList = new ArrayList();
    Map map = new HashMap();
    map.put("Username", "user1");
    map.put("Password", "pwd1");
    HandlerInfo info = new HandlerInfo();
    info.setHandlerClass(WSClientHandler .class);
    info.setHandlerConfig(map);
    handlerList.add(info);
    reg.setHandlerChain(portName,(List)handlerList);
    RemoteServiceResponse = port.callMe(name);
    My Handler file:
    package com.test;
    import java.util.Map;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.handler.Handler;
    import javax.xml.rpc.handler.HandlerInfo;
    import javax.xml.rpc.handler.MessageContext;
    import javax.xml.rpc.handler.soap.SOAPMessageContext;
    import javax.xml.soap.Name;
    import javax.xml.soap.SOAPElement;
    import javax.xml.soap.SOAPEnvelope;
    import javax.xml.soap.SOAPException;
    import javax.xml.soap.SOAPHeader;
    import javax.xml.soap.SOAPHeaderElement;
    public class WSClientHandler implements Handler {
    private HandlerInfo handlerInfo;
    public WSClientAuthenticateHandler(){}
    public void init(HandlerInfo hi) {
    System.out.println("Handler init");
    handlerInfo = hi;
    public void destroy() {
    System.out.println("Handler destroy method called");
    handlerInfo = null;
    public QName[] getHeaders() {
    System.out.println("Handler Header method called");
    try {
    Map map = handlerInfo.getHandlerConfig();
    QName[] headers = handlerInfo.getHeaders();
    System.out.println(" Config :"+map);
    for(int i=0;i<headers.length;i++) {
    System.out.println(headers.getLocalPart()+" "+
    headers.toString()+" "+headers.getNamespaceURI());
    }catch(Exception e) {
    e.printStackTrace();
    return handlerInfo.getHeaders();
    public boolean handleRequest(MessageContext mc) {
    SOAPMessageContext smc = (SOAPMessageContext) mc;
    System.out.println("Calling handler class.....................");
    try {
    SOAPEnvelope se = smc.getMessage().getSOAPPart().getEnvelope();
    System.out.println("Calling handler class.....................");
    SOAPHeader soapHeader = se.getHeader();
    Name headerName = se.createName("Security","wsse","http://schemas.xmlsoap.org/ws/2002/07/secext");
    SOAPHeaderElement headerElement = soapHeader.addHeaderElement(headerName);
    SOAPElement element = headerElement.addChildElement(se.createName("UsernameToken", "wsse", "http://schemas.xmlsoap.org/ws/2002/07/secext"));
    element.addChildElement(se.createName("Username", "wsse","http://schemas.xmlsoap.org/ws/2002/07/secext")).addTextNode("testuser");
    element.addChildElement(se.createName("Password", "wsse","http://schemas.xmlsoap.org/ws/2002/07/secext")).addTextNode("testpwd");
    System.out.println("Calling handler class.....................");
    System.out.println("** Request: \n "se.toString()"\n");
    }catch(SOAPException e) {
    e.printStackTrace();
    return true;
    /** * Specifies that the SOAP response message be logged to a
    * log file before the
    * * message is sent back to the client application
    * that invoked the Web service.
    public boolean handleResponse(MessageContext mc) {
    System.out.println("Handler Response method called");
    SOAPMessageContext messageContext = (SOAPMessageContext) mc;
    System.out.println("** Response: \n"messageContext.getMessage().toString()"\n");
    return true;
    /** * Specifies that a message be logged to the log file if a SOAP fault is
    * * thrown by the Handler instance.
    public boolean handleFault(MessageContext mc) {
    SOAPMessageContext messageContext = (SOAPMessageContext) mc;
    System.out.println("** Fault: \n"messageContext.getMessage().toString()"\n");
    return true;
    Please need help here.
    Thanks in Advance,
    pps

    I have tested static client calling using handler simple above service and found the issues.
    QName portName = new QName(namespace,
    "*RemoteServicePortType*");
    The above line code has created the issues,becuase in wsdl file ( given similar wsdl file).
    <?xml version="1.0"; encoding="UTF-8"?>
    <definitions name="HelloService"
    targetNamespace="http://www.ecerami.com/wsdl/HelloService.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://www.ecerami.com/wsdl/HelloService.wsdl"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <message name="SayHelloRequest">
    <part name="firstName" type="xsd:string"/>
    </message>
    <message name="SayHelloResponse">
    <part name="greeting" type="xsd:string"/>
    </message>
    *<portType name="RemoteServicePortType">*
    <operation name="sayHello">
    <input message="tns:SayHelloRequest"/>
    <output message="tns:SayHelloResponse"/>
    </operation>
    </portType>
    <binding name="Hello_Binding" type="tns:*RemoteServicePortType*">
    <soap:binding style="rpc"
    transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="sayHello">
    <soap:operation soapAction="sayHello"/>
    <input>
    <soap:body
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:examples:helloservice"
    use="encoded"/>
    </input>
    <output>
    <soap:body
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:examples:helloservice"
    use="encoded"/>
    </output>
    </operation>
    </binding>
    <service name="Hello_Service">
    <port binding="tns:Hello_Binding" name="*RemoteServicePortType1*">
    <soap:address
    location="http://host1:8080/soap/servlet/rpcrouter"/>
    </port>
    <port binding="tns:Hello_Binding" name="*RemoteServicePortType2*">
    <soap:address
    location="http://host2:8080/soap/servlet/rpcrouter"/>
    </port>
    <port binding="tns:Hello_Binding" name="*RemoteServicePortType3*">
    <soap:address
    location="http://host3:8080/soap/servlet/rpcrouter"/>
    </port>
    <port binding="tns:Hello_Binding" name="*RemoteServicePortType4*">
    <soap:address
    location="http://host4:8080/soap/servlet/rpcrouter"/>
    </port>
    </service>
    </definitions>
    From the above WSDL, I have four port name (port binding="tns:Hello_Binding" name="*RemoteServicePortType1*) which is not matching with PortType (portType name="*RemoteServicePortType*")
    even i have iterated from getPorts() method and used to invoke the service.But handler was not calling when i invoke.
    Please guide me here how i specify correct portname which can call Handler class also.
    Thanks in advance,
    pps

  • Web service handler could not registered/called in client web service

    Hi Expert,
    I have two web service ServiceA & ServiceB and both implemented in weblogic.
    The ServiceA is SSL enable and protocol is https which is not published by me.
    The ServieB is my web service(wls8.1) and act as client for ServiceA.
    My problem is when i hit my service, its not able set the handler when it call ServiceA but it is invoking the service and giving application exception like authentication error.
    My service file:
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.handler.HandlerInfo;
    import javax.xml.rpc.handler.HandlerRegistry;
    import javax.xml.rpc.handler.soap.SOAPMessageContext;
    import weblogic.webservice.client.SSLAdapterFactory;
    import weblogic.webservice.client.WLSSLAdapter;
    public class HelloService {
    String wsdl = "https://188.122.123.23/RemoetService?WSDL";
    static     {
              SSLAdapterFactory factory =                SSLAdapterFactory.getDefaultFactory();
              WLSSLAdapter adapter = (WLSSLAdapter)     factory.getSSLAdapter();
              adapter.setTrustedCertificatesFile("D:\\lib\\certs\\cacerts");
              factory.setDefaultAdapter(adapter);
              System.setProperty("weblogic.xml.encryption.verbose","true");
              System.setProperty("weblogic.xml.signature.verbose","true");
              System.setProperty("weblogic.webservice.verbose","true");
         public String sayHello(String user) {
              RemoteService_Impl service = new RemoteService_Impl(wsdl);
              RemotePortType port = service.getRemoteServicePort1();
              String namespace = service.getServiceName()
                        .getNamespaceURI();
              QName portName = new QName(namespace,
                        "RemoteServicePortType");
              HandlerRegistry reg = service.getHandlerRegistry();
              List handlerList = new ArrayList();
              Map map = new HashMap();
              map.put("Username", "user1");
              map.put("Password", "pwd1");
              HandlerInfo info = new HandlerInfo();
              info.setHandlerClass(WSClientHandler .class);
              info.setHandlerConfig(map);
              handlerList.add(info);
              reg.setHandlerChain(portName,(List)handlerList);
              RemoteServiceResponse = port.callMe(name);
    My Handler Class:
    package com.test;
    import java.util.Map;
    import javax.xml.namespace.QName;
    import javax.xml.rpc.handler.Handler;
    import javax.xml.rpc.handler.HandlerInfo;
    import javax.xml.rpc.handler.MessageContext;
    import javax.xml.rpc.handler.soap.SOAPMessageContext;
    import javax.xml.soap.Name;
    import javax.xml.soap.SOAPElement;
    import javax.xml.soap.SOAPEnvelope;
    import javax.xml.soap.SOAPException;
    import javax.xml.soap.SOAPHeader;
    import javax.xml.soap.SOAPHeaderElement;
    public class WSClientHandler implements Handler {
         private HandlerInfo handlerInfo;
         public WSClientAuthenticateHandler(){}
         public void init(HandlerInfo hi) {   
              System.out.println("Handler init");
              handlerInfo = hi;
         public void destroy() {
              System.out.println("Handler destroy method called");
              handlerInfo = null;
         public QName[] getHeaders() {
              System.out.println("Handler Header method called");
              try     {
                   Map map = handlerInfo.getHandlerConfig();
                   QName[] headers = handlerInfo.getHeaders();
                   System.out.println(" Config :"+map);
                   for(int i=0;i<headers.length;i++)     {
                        System.out.println(headers.getLocalPart()+" "+
                        headers[i].toString()+" "+headers[i].getNamespaceURI());
              }catch(Exception e)     {
                   e.printStackTrace();
              return handlerInfo.getHeaders();
         public boolean handleRequest(MessageContext mc) {   
              SOAPMessageContext smc = (SOAPMessageContext) mc;
              System.out.println("Calling handler class.....................");
              try     {
              SOAPEnvelope se =      smc.getMessage().getSOAPPart().getEnvelope();
              System.out.println("Calling handler class.....................");
         SOAPHeader soapHeader = se.getHeader();
         Name headerName = se.createName("Security","wsse","http://schemas.xmlsoap.org/ws/2002/07/secext");
         SOAPHeaderElement headerElement = soapHeader.addHeaderElement(headerName);
         SOAPElement element = headerElement.addChildElement(se.createName("UsernameToken", "wsse", "http://schemas.xmlsoap.org/ws/2002/07/secext"));
         element.addChildElement(se.createName("Username", "wsse","http://schemas.xmlsoap.org/ws/2002/07/secext")).addTextNode("testuser");
         element.addChildElement(se.createName("Password", "wsse","http://schemas.xmlsoap.org/ws/2002/07/secext")).addTextNode("testpwd");
         System.out.println("Calling handler class.....................");
                   System.out.println("** Request: \n "+se.toString()+"\n");
              }catch(SOAPException e)     {
                   e.printStackTrace();
              return true;
         /** * Specifies that the SOAP response message be logged to a
         * log file before the
         * * message is sent back to the client application
         * that invoked the Web service.
         public boolean handleResponse(MessageContext mc) {  
              System.out.println("Handler Response method called");
              SOAPMessageContext messageContext = (SOAPMessageContext) mc;
              System.out.println("** Response: \n"+messageContext.getMessage().toString()+"\n");
              return true;
         /** * Specifies that a message be logged to the log file if a SOAP fault is
         * * thrown by the Handler instance.
         public boolean handleFault(MessageContext mc) {   
              SOAPMessageContext messageContext = (SOAPMessageContext) mc;
              System.out.println("** Fault: \n"+messageContext.getMessage().toString()+"\n");
              return true;
    Please need help here.
    Thanks in Advance,
    pps

    I have tested static client calling using handler simple above service and found the issues.
    QName portName = new QName(namespace,
    *"RemoteServicePortType");*
    The above line code has created the issues,becuase in wsdl file ( given similar wsdl file).
    <?xml version="1.0"; encoding="UTF-8"?>
    <definitions name="HelloService"
    targetNamespace="http://www.ecerami.com/wsdl/HelloService.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://www.ecerami.com/wsdl/HelloService.wsdl"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <message name="SayHelloRequest">
    <part name="firstName" type="xsd:string"/>
    </message>
    <message name="SayHelloResponse">
    <part name="greeting" type="xsd:string"/>
    </message>
    <portType name="*RemoteServicePortType*">
    <operation name="sayHello">
    <input message="tns:SayHelloRequest"/>
    <output message="tns:SayHelloResponse"/>
    </operation>
    </portType>
    <binding name="Hello_Binding" type="tns:*RemoteServicePortType*">
    <soap:binding style="rpc"
    transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="sayHello">
    <soap:operation soapAction="sayHello"/>
    <input>
    <soap:body
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:examples:helloservice"
    use="encoded"/>
    </input>
    <output>
    <soap:body
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:examples:helloservice"
    use="encoded"/>
    </output>
    </operation>
    </binding>
    <service name="Hello_Service">
    +<port binding="tns:Hello_Binding" name="*RemoteServicePortType1*">+
    +<soap:address+
    location="http://host1:8080/soap/servlet/rpcrouter"/>
    +</port>+
    +<port binding="tns:Hello_Binding" name="*RemoteServicePortType2*">+
    +<soap:address+
    location="http://host2:8080/soap/servlet/rpcrouter"/>
    +</port>+
    +<port binding="tns:Hello_Binding" name="*RemoteServicePortType3*">+
    +<soap:address+
    location="http://host3:8080/soap/servlet/rpcrouter"/>
    +</port>+
    +<port binding="tns:Hello_Binding" name="*RemoteServicePortType4*">+
    +<soap:address+
    location="http://host4:8080/soap/servlet/rpcrouter"/>
    +</port>+
    </service>
    </definitions>
    From the above WSDL, I have four port name (port binding="tns:Hello_Binding" name="*RemoteServicePortType1*) which is not matching with PortType (portType name="*RemoteServicePortType*")
    even i have iterated from getPorts() method and used to invoke the service.But handler was not calling when i invoke.
    Please guide me here how i specify correct portname which can call Handler class also.
    Thanks in advance,
    pps

  • Any existing BAPI that can be wrapped and exposed as a web service ???

    Hi ,
    I am designing PI Collaboration Platform and that all about Monitoring across SAP ECC, SAP PI and Non-SAP applications.
    BUSINESS CASE: Some clients are  looking for a solution that allows there management some visibility into the end-to-end aspect of processes, we will limit our discussion to SAP ECC and PI.
    SOLUTION: BAM ultimately helps solve this problem at an enterprise level - however that is a heavy investment for most organizations - is there an alternative that we can provide ? Example a generic web service that can be invoked from a 3rd party tool to provide reports.
    We do have solution :
    We can configure Proxy adapter and can write Java web service to invoke a method to extract the data from ECC and one or more report generating methods based on the standard ( like PDF,EXCEL etc)
    but we are still looking  for an existing BAPI that can be wrapped and exposed as a web service ????
    Need solution for the above ?

    Hi Sanjay,
    Yes  BAM  has a bigger take, if you are looking for PI monitoring reports  then please have a look at the following blogs which might
    give you some insight.this basically deal with reading data from SXMB_MONI tables.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/909760cb-0ec8-2a10-4a96-ee8417acfbc9
    http://wiki.sdn.sap.com/wiki/display/Snippets/PIMonitoringFunctionality-FetchingDatafromSXMB_MONIStandardTables-PartI
    i dont think there is any BAPI as such atleast wrt to PI.
    Best Regards,
    Srinivas

  • Problem in writing a client web service from WSDL document

    Hi,
    I wrote a web service using .Net and a WSDL document. I tried after that to generate a client web service using Jdeveloper. but, the methode generated by Jdeveloper (in the stub) does not represente the original methode.
    <?xml version = '1.0' encoding = 'windows-1252'?>
    <!--Generated by the Oracle9i JDeveloper Web Services WSDL Generator-->
    <!--Date Created: Fri Aug 09 13:59:52 EDT 2002-->
    <definitions
    name="CreditCard"
    targetNamespace="http://tempuri.org/jdeveloper/generated/CreditCard/CreditCard"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://tempuri.org/jdeveloper/generated/CreditCard/CreditCard"
    xmlns:ns1="http://tempuri.org/jdeveloper/generated/CreditCard/CreditCard/schema">
    <types>
    <schema
    targetNamespace="http://tempuri.org/jdeveloper/generated/CreditCard/CreditCard/schema"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"/>
    </types>
    <message name="Validate0Request">
    <part name="cardNumber" type="xsd:string"/>
    <part name="lngDate" type="xsd:long"/>
    </message>
    <message name="Validate0Response">
    <part name="return" type="xsd:boolean"/>
    </message>
    <portType name="CreditCardPortType">
    <operation name="Validate">
    <input name="Validate0Request" message="tns:Validate0Request"/>
    <output name="Validate0Response" message="tns:Validate0Response"/>
    </operation>
    </portType>
    <binding name="CreditCardBinding" type="tns:CreditCardPortType">
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="Validate">
    <soap:operation soapAction="" style="rpc"/>
    <input name="Validate0Request">
    <soap:body use="encoded" namespace="CreditCard.CreditCard" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </input>
    <output name="Validate0Response">
    <soap:body use="encoded" namespace="CreditCard.CreditCard" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
    </output>
    </operation>
    </binding>
    <service name="CreditCard">
    <port name="CreditCardPort" binding="tns:CreditCardBinding">
    <soap:address location="http://localhost:8888/FirstSample-CreditCard-context-root/CreditCard.CreditCard"/>
    </port>
    </service>
    </definitions>
    Here The methode Validate consume two parameters : string and long
    the generated stub look like :
    public Vector Validate(Element requestElem) throws Exception
    There is some one who have a solution ?
    ---------------------------------------

    My guess is that it is because .NET defaults to generating a document style interface whereas JDeveloper defaults to generating an RPC style interface. The end result is that JDeveloper wraps the document interface in something that looks document like - thus your client. To see how to handle this right now, check out this sample - you have to parse the XML:
    http://otn.oracle.com/tech/webservices/htdocs/series/net/content.html
    In the preview of JDeveloper 9.0.3 which is due quite soon - next few weeks roughly (crossing my fingers) - JDeveloper will wrap .NET document based Web services in a much more elegant wrapper - giving you exactly what you are looking for - a method called Validate rather than a vector of Elements.
    What I don't understand in your sample, however, is that you have WSDL generated from JDeveloper versus WSDL generated from .NET. Did you also do an implementation of the validate method in Java too?
    Mike.

  • 2 Java ME Web Service Errors of "Not Compliant with JSR-172"

    This happened when I use Microsoft's ASMX-based WSDL file on a Java ME WS client.
    Say I had a test.asmx WSDL. Then I use NetBeans, and I go to New > Java ME Web Service Client
    I tried to import from running web service, URL "http://www.testhost.com/wspackage/test.asmx?WSDL"
    and then the popup validation error told me "Reference in element is not supported by this version of stub compiler"
    also the X logo error told me "testasmx.wsdl is not compliant with Java ME Web Services specification (JSR-172)"
    I wondered what's going on? Is there any data types not supported by JSR-172? Which is it?
    When I "Validate XML" this ASMX file, it pops this:
    "Error: src-resolve: Cannot resolve the name 's:schema' to a(n) 'element declaration' component."
    The "types" section of my WSDL are like this:
    <?xml version="1.0" encoding="utf-8"?>
    <wsdl:definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://tempuri.org/MMWebServices/Coverage"
    xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    targetNamespace="http://tempuri.org/MMWebServices/Coverage" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/MMWebServices/Coverage">
    <s:import namespace="http://www.w3.org/2001/XMLSchema" />
    <s:element name="ViewListDoctor">
    <s:complexType>
    <s:sequence>
    <s:element minOccurs="1" maxOccurs="1" name="iUserId" type="s:int" />
    <s:element minOccurs="1" maxOccurs="1" name="iASchId" type="s:int" />
    <s:element minOccurs="0" maxOccurs="1" name="sSearchKeyword" type="s:string" />
    <s:element minOccurs="0" maxOccurs="1" name="dsView">
    <s:complexType>
    <s:sequence>
    <s:element ref="s:schema" /> // <<error occured on this line, and every time the ref="s:schema" shows up <<
    Anyone have experienced this?

    Yes, thx u. I didn't realized I was posting on the wrong section (Enterprise) so I posted again to the J2ME/MIDP section since it was all about mobility. Please delete the first post.

  • Problem generating stubs for Java EJB web service deployed in OAS

    I created an EJB web service and I've successfully deployed it in my Oracle App Server. Some of the methods work fine but others produce the ff error:
    org.apache.soap.SOAPException - java.lang.IllegalArgumentException: No Serializer found to serialize [classname] using encoding style [encoding]It seems that the objects specified as parameters in the web service methods exposed are the only ones that had stubs generated for them. Other objects I use, which are usually wrapped inside a Vector, did not have generated stubs.
    Example:
         public String loginUser(UserDTO userDTO) throws RemoteException, NamingException, SQLException;
    public String addItems (Vector vecItems) throws RemoteException, NamingException, SQLException; // where vecItems is a collection of ItemDTO objects     In this scenario, stubs were generated for the UserDTO class, but not for the ItemDTO class. In effect, calling the addItems method resulted to the exception I mentioned above.
    I did a workaround wherein I declared a dummy method which accepted all the types of objects I needed as parameters so all the necessary stubs can be generated, but this fix doesn't feel like it's the proper solution to my problem.
    If anyone can help me, it would be greatly appreciated. Thanks!

    Crossposted:
    Problem generating stubs for Java EJB web service deployed in OAS

  • Problem with java based Web Services in ADF-.

    I have developed a Web service based on the Java class generated through Business components. Steps are as below:-
    1)     Created a Read only View Object with EmpDeptViewObj name and has following query:-
    “select e.EMPLOYEE_ID,e.FIRST_NAME,e.LAST_NAME,e.EMAIL,e.JOB_ID, d.DEPARTMENT_ID,d.DEPARTMENT_NAME
    from HR.EMPLOYEES e,HR.DEPARTMENTS d where e.department_id=d.department_id
    and d.DEPARTMENT_NAME=:1”
    2)     Created an AM. Added the above created View Object in it and then added the following custom method it in:-
    public String[] getEmpDetailsAsString(String deptName)
    EmpDeptViewObjImpl empDeptVOObj=this.getEmpDeptViewObj1();
    empDeptVOObj.setWhereClauseParams(null);
    empDeptVOObj.setWhereClauseParam(0,deptName);
    empDeptVOObj.executeQuery();
    int fetchedRowCount = empDeptVOObj.getRowCount();
    EmpDeptViewObjRowImpl[] rows = new EmpDeptViewObjRowImpl[fetchedRowCount];
    String[] temp=new String[fetchedRowCount];
    RowSetIterator rowIter = empDeptVOObj.createRowSetIterator("rowIter");
    if (fetchedRowCount > 0)
    rowIter.setRangeStart(0);
    rowIter.setRangeSize(fetchedRowCount);
    for (int count = 0; count < fetchedRowCount; count++)
    rows[count]=(EmpDeptViewObjRowImpl)rowIter.getRowAtRangeIndex(count);
    temp[count]=rows[count].getFirstName();
    rowIter.closeRowSetIterator();
    return temp;
    public EmpDeptViewObjRowImpl[] getEmpDetailsAsRowImplObj(String deptName)
    EmpDeptViewObjRowImpl[] rows=null;
    if(deptName!=null)
    EmpDeptViewObjImpl empDeptVOObj=this.getEmpDeptViewObj1();
    empDeptVOObj.setWhereClauseParams(null);
    empDeptVOObj.setWhereClauseParam(0,deptName);
    empDeptVOObj.executeQuery();
    int fetchedRowCount = empDeptVOObj.getRowCount();
    rows = new EmpDeptViewObjRowImpl[fetchedRowCount];
    RowSetIterator rowIter = empDeptVOObj.createRowSetIterator("rowIter");
    if (fetchedRowCount > 0)
    rowIter.setRangeStart(0);
    rowIter.setRangeSize(fetchedRowCount);
    for (int count = 0; count < fetchedRowCount; count++)
    rows[count]=(EmpDeptViewObjRowImpl)rowIter.getRowAtRangeIndex(count);
    rowIter.closeRowSetIterator();
    return rows;
    public EmpDeptBean[] getEmpDetailsBasedOnBean(String deptName)
    EmpDeptViewObjImpl empDeptVOObj=this.getEmpDeptViewObj1();
    empDeptVOObj.setWhereClauseParams(null);
    empDeptVOObj.setWhereClauseParam(0,deptName);
    empDeptVOObj.executeQuery();
    int fetchedRowCount = empDeptVOObj.getRowCount();
    EmpDeptBean empDeptRow[]=new EmpDeptBean[fetchedRowCount];
    EmpDeptViewObjRowImpl[] rows = new EmpDeptViewObjRowImpl[fetchedRowCount];
    RowSetIterator rowIter = empDeptVOObj.createRowSetIterator("rowIter");
    if (fetchedRowCount > 0)
    rowIter.setRangeStart(0);
    rowIter.setRangeSize(fetchedRowCount);
    for (int count = 0; count < fetchedRowCount; count++)
    rows[count]=(EmpDeptViewObjRowImpl)rowIter.getRowAtRangeIndex(count);
    empDeptRow[count].setDEPARTMENTID(rows[count].getDepartmentId());
    empDeptRow[count].setDEPARTMENTNAME(rows[count].getDepartmentName());
    empDeptRow[count].setFIRSTNAME(rows[count].getFirstName());
    empDeptRow[count].setLASTNAME(rows[count].getLastName());
    empDeptRow[count].setJOBID(rows[count].getJobId());
    empDeptRow[count].setEMPLOYEEID(rows[count].getEmployeeId());
    empDeptRow[count].setEMAIL(rows[count].getEmail());
    rowIter.closeRowSetIterator();
    return empDeptRow;
    3)     And then generated the Web Service from Application module.
    Problem here is I am unable to return multiple columns to the xml generated. And only getEmpDetailsAsString and getEmpDetailsAsRowImplObj. And getEmpDetailsBasedOnBean method is not even getting published in end point.
    Please help me to solve this problem.
    Thanks in Advance
    ~Vikram
    Message was edited by:
    Vikram

    Could you please paste your WSDL?

  • [Integrated SOA Gateway] Publish Java based web service

    Welcome!
    Lately I have been trying to publish Java based web service through Integrated SOA Gateway. The documentation states that:
    +"Custom interface definitions can be created for various interface types including custom interface definitions for XML Gateway Map, Business Event, PL/SQL, Concurrent Program, Business Service Object, Java (except for Java APIs for Forms subtype) and Composite Service for BPEL type."+ (Integrated SOA Gateway Developer's Guide Release 12.1, "Creating and Using Custom Integration Interfaces")
    After familiarizing myself with $FND_TOP/bin/irep_parser.pl and $FND_TOP/bin/FNDLOAD tools, I have started coding my POJOs. Initially I have come up with three classes - request/response objects and service implementation. Service implementation has been annotated with "@rep:X" descriptors according to "Java Annotations" section of the documentation. While invoking $FND_TOP/bin/irep_parser.pl I have received errors about class resolution. My solution was to transform request and response types to static inner classes. This way I ended up with one *.java source file (see below).
    * Sample ISG Service.
    * @rep:scope public
    * @rep:product AP
    * @rep:displayname My Custom ISG Service.
    public class MyService {
    public static class Request {
    private String id;
    public void setId(String id) {
    this.id = id;
    public String getId() {
    return id;
    public static class Response {
    private String data;
    public void setData(String data) {
    this.data = data;
    public String getData() {
    return data;
    * Sample operation.
    * @param request Request Object.
    * @return Return Object.
    * @rep:displayname Test operation.
    * @rep:category BUSINESS_ENTITY SAMPLE_SERVICE
    public MyService.Response testOperation(MyService.Request request) {
    MyService.Response response = new MyService.Response();
    response.setData("Some Data");
    return response;
    ILDT file has been successfully created and uploaded. However, I could not see the "Generate WSDL" button on Integrated Repository website. Is there any particular interface or superclass that my service implementation should extend? I have reviewed "PurchaseOrderSDO" example posted in the developer's guide (page 407), but I couldn't come up with a working solution. Could you provide me with more detailed tutorial/example? Which documentation sections should I read again?
    After searching through forum, I have spotted $FND_TOP/bin/soagenerate.sh script, and thought that lack of "Generate WSDL" button was an EBS defect. After running the script, I have received an error:
    Error in Service Generation.
    ServiceGenerationError: Interface Type (JAVA) Interface SubType (null) is not supported.
    oracle.apps.fnd.soa.util.SOAException: ServiceGenerationError: Interface Type (JAVA) Interface SubType (null) is not supported.
         at oracle.apps.fnd.soa.provider.wsdl.ArtifactsFactory.getArtifactsGenerator(ArtifactsFactory.java:55)
         at oracle.apps.fnd.soa.provider.wsdl.WSDLGenerator.generateServiceWSDL(WSDLGenerator.java:128)
         at oracle.apps.fnd.soa.provider.wsdl.ServiceGenerator.generateSOAService(ServiceGenerator.java:75)
         at oracle.apps.fnd.soa.provider.wsdl.ServiceGenerator.generateSingleService(ServiceGenerator.java:88)
         at oracle.apps.fnd.soa.provider.wsdl.ServiceGenerator.main(ServiceGenerator.java:419)
    I would be grateful for any suggestions. Has anyone published Java based web service through ISG?
    Best regards,
    Lukasz

    I tried the following as per Oracle support and able to generate the wsdl though, but not invoke the webservices.
    1. Applied the patch 8607523
    2. Took the translator.jar file from the patch 8857799 and replaced the current translator.jar file
    3. Deploy the adapters.
    $FND_TOP/bin/txkrun.pl -script=CfgOC4JApp -applicationname=pcapps
    -oc4jpass=welcome -runautoconfig=No

Maybe you are looking for

  • Oops. Can I read my byte stream files with missing headers?

    My fault, I know, but I wrote out an 1D array of numbers to a file using the simple Write File vi, not realising that a header would have been a good idea at the time. Now I can't read them back in because LabVIEW doesn't know what they are, and tryi

  • Electronic Bank statement error

    Hi gurus, I have configured electronic bank statement settings for multicash format when ever i execute the file in ff.5 it is showing the error message and accounting entries will not get generated please help me on this Error message. Account 56003

  • E52 bad GPS performance without A-GPS.

    I'm facing a problem with getting a lock on with Integrated GPS on my E52. With A-GPS, there is no problem, the fix is quick. However, I don't see why I have to pay for A-GPS when there is an integrated GPS built in. I waited for over 30 mins in the

  • Download internal table to presentation server in UTF-8 format

    Hello everyone. We are trying to use function module GUI_DOWNLOAD to download data from internal table to a text file (filetype ASCII). The defualt encoding for the text file is ANSI but we need to download it with the encoding UTF-8. We have already

  • Massive problem with remote destination

    hello all, we have massive problems with our remote destinations. after i create the remote destination profile and added the line, i create the remote destination for my mobile phone.  all ok so. but if im associate my mobile phone with the line by