Dynamic Webservice Target URL

I am using Crystal Reports for Eclipse to serve up some reports for my web application. Currently, I am using JDBC datasources in which I am changing the datasource at runtime in a CrystalReportViewer where I also set some report parameters for every report that passes thru it. However, I am now switching from JDBC datasources as my data provider to webservices. The webservices work perfectly during design time. However, in my report, I have to tell it that the webservice is located at http://localhost/. When I go to deploy these reports to production servers, I need to dynamically change the target URL to something like http://myproductionserver/ at runtime. I know this needs to take place in my CrystalReportViewer, but I can't figure out how to do it there. Can someone point me in the direction I need to be going?
Thanks in advance...

Ok. I've been making a little bit of progress with this. I have added "replaceConnection" on my database controller and am changing the URLs there. However, when I do that, I get an invalid argument exception.
Here is my replaceConnection code:
private void replaceConnection(DatabaseController dbController) throws ReportSDKException
       ConnectionInfos connInfos = dbController.getConnectionInfos(null);
       for(IConnectionInfo connInfo : connInfos)
            PropertyBag pb = connInfo.getAttributes();
            String newQEServer = connInfo.getAttributes().getStringValue("PreQEServerName").replace("localhost", "BJRKQJ1-SHAW");
            String newServerName = connInfo.getAttributes().getStringValue("Server Name").replace("localhost", "BJRKQJ1-SHAW");
            String newHttpWebserviceUrl = connInfo.getAttributes().getStringValue("Http WebService URL").replace("localhost", "BJRKQJ1-SHAW");
            pb.put("PreQEServerName", newQEServer);
            pb.put("Server Name", newServerName);
            pb.put("Http WebService URL", newHttpWebserviceUrl);
            dbController.replaceConnection(connInfo, connInfo, null, DBOptions._ignoreCurrentTableQualifiers + DBOptions._doNotVerifyDB);
Here is the exception stack trace:
<<< ERROR - Unable to create parameter for type int32s >>><<< ERROR -  detected an exception: Invalid argument
     at com.crystaldecisions.reports.common.ExceptionFactory.a(Unknown Source)
     at com.businessobjects.reports.sdk.requesthandler.ParameterRequestHandler.a(Unknown Source)
     at com.businessobjects.reports.sdk.requesthandler.ParameterRequestHandler.do(Unknown Source)
     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.do(Unknown Source)
     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.if(Unknown Source)
     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(Unknown Source)
     at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.a(Unknown Source)
     at com.businessobjects.reports.sdk.JRCCommunicationAdapter$2.call(Unknown Source)
     at com.crystaldecisions.reports.common.ThreadGuard.syncExecute(Unknown Source)
     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.for(Unknown Source)
     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.int(Unknown Source)
     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.a(Unknown Source)
     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.int(Unknown Source)
     at com.businessobjects.reports.sdk.JRCCommunicationAdapter.request(Unknown Source)
     at com.businessobjects.sdk.erom.jrc.a.a(Unknown Source)
     at com.businessobjects.sdk.erom.jrc.a.execute(Unknown Source)
     at com.crystaldecisions.proxy.remoteagent.RemoteAgent$a.execute(Unknown Source)
     at com.crystaldecisions.proxy.remoteagent.CommunicationChannel.a(Unknown Source)
     at com.crystaldecisions.proxy.remoteagent.RemoteAgent.a(Unknown Source)
     at com.crystaldecisions.proxy.remoteagent.RemoteAgent.char(Unknown Source)
     at com.crystaldecisions.proxy.remoteagent.RemoteAgent.new(Unknown Source)
     at com.crystaldecisions.proxy.remoteagent.RemoteAgent.do(Unknown Source)
     at com.crystaldecisions.proxy.remoteagent.RemoteAgent.if(Unknown Source)
     at com.crystaldecisions.proxy.remoteagent.UndoUnitBase.performDo(Unknown Source)
     at com.crystaldecisions.proxy.remoteagent.UndoUnitBase.a(Unknown Source)
     at com.crystaldecisions.sdk.occa.report.application.an.a(Unknown Source)
     at com.crystaldecisions.sdk.occa.report.application.ParameterFieldController.a(Unknown Source)
     at com.crystaldecisions.sdk.occa.report.application.ParameterFieldController.add(Unknown Source)
     at com.crystaldecisions.sdk.occa.report.application.DatabaseController.for(Unknown Source)
     at com.crystaldecisions.sdk.occa.report.application.DatabaseController.byte(Unknown Source)
     at com.crystaldecisions.sdk.occa.report.application.DatabaseController.a(Unknown Source)
     at com.crystaldecisions.sdk.occa.report.application.DatabaseController.replaceConnection(Unknown Source)
     at com.businessobjects.GenerateReport.replaceConnection(GenerateReport.java:322)
     at com.businessobjects.GenerateReport.createReportViewer(GenerateReport.java:213)
     at com.businessobjects.GenerateReport.generateReport(GenerateReport.java:77)
     at com.businessobjects.GenerateReport.doFilter(GenerateReport.java:57)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
     at java.lang.Thread.run(Unknown Source)
>>>
Sorry if the code gets displayed all out of whack. I can never get this thing to display correctly using the "code" with { } tags.

Similar Messages

  • Error when setting dynamically the target URL in receiver SOAP Adapter

    Hi,
    I'm setting dynamically (from the mapping) the target URL in the receiver SOAP adapter:
    String url = "http://mosxd30:50000/XISOAPAdapter/MessageServlet?senderParty=&senderService=DUM&receiverParty=&receiverService=&interface=SI_OA_CustomInvoiceData&interfaceNamespace=urn:repsol.com:laboratory:firma";
    DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP", "TServerLocation");
    conf.put(key, url);
    The receiver adapter fails with:
    "invalid content type for SOAP: TEXT/HTML; HTTP 401 Unauthorized"
    Reading weblogs, etc, the most probable cause for this is a wrong target URL, but then what I did was to set it as a fixed URL in the C.Channel, and it worked, so the URL is fine.
    In the communication channel, I'm using "Configure user authentication", with a user and password, and what I think it's happening is that if I use another different URL dynamically, the channel is ignoring the user authentication settings.
    Any ideas?
    Thanks

    I forgot to say that I've checked the SAP note "FAQ Soap adapter", and it says:
    Q: I get an authorization error "401 Unauthorized" from the adapter's servlet. What went wrong?
               A: The adapter's servlet is protected by default. You must use one of the user names assigned in security role xi_adapter_soap_message for component XISOAPAdapter. Please consult the documentation for Visual Administrator to view and change the security setting.
               The user authentication of the SOAP adapter is not part of the SOAP adapter but of the web container of the J2EE engine. The default authentication setting is defined in the web.xml descriptor file of the SOAP dapter web application. This setting may be modified from Visual Administrator with some restriction. Please refer to the security documentation for the J2EE engine.
               Please note that 710 onwards there is no Visual Administrator instead the Netweaver Administrator is to be used to assign the roles to the user to access the SOAP adater servlet.The user must be assigned one of the following roles SAP_XI_IS_SERV_USER, SAP_XI_APPL_SERV_USER, SAP_XI_DEVELOPER_J2EE, SAP_XI_ADMINISTRATOR_J2EE.
    The target URL is a sender soap adapter (the result of one interface is sent to another one via soap adapter), and it's this one which is complaining because of the authentication I think. But I don't know why it's ignoring the user authentication flag I'm using.

  • Issue while passing Target URL dynamically in SOAP Receiver Adapter

    Experts,
    I am stuck with an issue while passing the Target URL dynamically.
    The UDF required for this works just fine. I can see the Target URL in Dynamic Configuration header(The Key is TServerLocation) in SXMB_MONI but the request that I am sending is not reaching the web service.
    Some posts have suggested to hard code the Target URL as http://.
    Below is the error that I am getting when I hard the Target URL as http://:
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>RecoverableException</code>
                   <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: invalid content type for SOAP: TEXT/HTML
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:453)
         at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:131)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:834)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    When I hard code the Target URL as Test (any dummy value), the error that I get is different. (Detailed error shown below)
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Body>
          <SOAP:Fault>
             <faultcode>SOAP:Server</faultcode>
             <faultstring>Server Error</faultstring>
             <detail>
                <s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
                   <context>XIAdapter</context>
                   <code>RecoverableException</code>
                   <text>com.sap.aii.af.ra.ms.api.DeliveryException: XIAdapterFramework:GENERAL:com.sap.aii.af.ra.ms.api.DeliveryException: no scheme
         at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:453)
         at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:131)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:834)
         at com.sap.aii.af.ra.ms.runtime.MSWorkWrapper.run(MSWorkWrapper.java:56)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)</text>
                </s:SystemError>
             </detail>
          </SOAP:Fault>
       </SOAP:Body>
    </SOAP:Envelope>
    I've referred the post [Dynamic URL for SOAP receiver adapter;.
    I am on PI 7.0.
    Any help in this regard is highly appreciated.
    Best Regards,
    Vijay

    Issue resolved... by doing this:
    DynamicConfigurationKey key2 = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/SOAP", "TAuthKey");
    conf.put (key2, "username");
    In the advanced tab of the communication channel, set the flag "View Authorization keys", and then added "username" (user to access the dynamic target url) and the password (2 times).
    That's it...

  • SOAP adapter and dynamic target URL

    My scenario: synchronous communication ABAP Proxy <=> XI <=> External WebServices.
    There is a need to have configurable (dynamic) target URL for SOAP Adapter. This target should be configurable from ABAP Proxy. Any idea how can I achieve my goal?
    Some additional notes why I need configurable target URL. I've multiple WebService instances which has identical interfaces and the only difference is target URL. I see no need to define for each webservice different SOAP Adapter. The other thing is that customer want to have configuration of destination (target) url on backend system (where ABAP Proxy is used).

    Check http://help.sap.com/saphelp_nw70/helpdata/EN/29/5bd93f130f9215e10000000a155106/frameset.htm
    It's possible to set the URL for Soap dynamically.
    To process adapter attributes in the message header of the XI message, set the Use Adapter-Specific Message Attributes indicator and the Variable Transport Binding indicator.
    You can evaluate the following attributes in the message header:
    Description: You can set the entire URL.
    Technical name: TServerLocation

  • Target URL Value in Dynamic Configuration

    Hi,
    1)When Dynamic Configuration is done for a receiver SOAP adapter what value has to be entered in the Target URL section of the SOAP channel?...assuming that a UDF for the same is implemented in the message mapping.
    2) Also under the ASMA section for the CC what is the purpose/ meaning of Variable Transport Binding and the subsequent XHeaderName1, XHeaderName2, XHeaderName3 fields.
    I have read the contents from the following:
    http://help.sap.com/saphelp_nw70/helpdata/EN/29/5bd93f130f9215e10000000a155106/frameset.htm
    but there is a doubt regarding the above two.
    Thanks,
    Abhishek.

    > 1)When Dynamic Configuration is done for a receiver SOAP adapter what value has to be entered in the Target URL section of the SOAP channel?...assuming that a UDF for the same is implemented in the message mapping.
    Anything you like. Maybe a default URL, or just an "x".
    > 2) Also under the ASMA section for the CC what is the purpose/ meaning of Variable Transport Binding and the subsequent XHeaderName1, XHeaderName2, XHeaderName3 fields.
    You have to check "Variable Transport Binding" when you use ASMA. You can leave the XHeaderNameX fields empty. They are for HTTP header fields.
    Regards
    Stefan

  • How to set target Url dynamically in submit button

    hi,
    I am using livecycle process to render a pdf form. The form has a submit button. Is it possible to set URL of submit button dynamically in a form? If yes how can i pass the target URL from process, dynamically while rendering the form? Can someone help me in this.
    Thanks,
    kripa

    Hi,
    Go to Tools > Embedded OC4J Server Preferences... > Global > Startup.
    Look for the options in "Host Name or IP Address Used to Refer to Embedded OC4J".
    William

  • Dynamic Webservices Client

    Hey ,
    I have an application which requires to talk to 2 different published webservices
    from 2 different systems. Now instead od designing static webservice clients for
    each of these systems(which would involve having separate proxy jars etc),
    I am planning to design a dynamic webservice locator and invoker....
    I know that we can have webservice clients which are dynamic to the extent that
    we can create proxy objects at runtime once we know the endpoint WSDL..
    eg:
    ServiceFactory factory = ServiceFactory.newInstance();
    QName serviceName =new QName targetNamespace,"net.xmethods.services.stockquote.StockQuoteService");
    QName portName = new QName(targetNamespace,"net.xmethods.services.stockquote.StockQuotePort");
    QName operationName = new QName("urn:xmethods-delayed-quotes","getQuote");
    URL wsdlLocation = new URL("http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl");
    // create service
    Service service = factory.createService(wsdlLocation, serviceName);
    // create call Call call = service.createCall(portName, operationName);
    My question on this...if I have a dynamic approach like the above what are the
    pros and cons..I guess it would surely have more overhead compared to a static
    client...?
    Secondly ,is it even feasible to design a dynamic client in such a way that the
    endpoint WSDL could also be an unknown and my generic client would also locate
    the end-point dynamically and then invoke dynamic calls as above...
    If anybody can share their insights on a dynamic webservice client , I would really
    appreciate it...
    Thanx,
    Krish
    KRISH.VENKATARAMAN
    Senior Technology Analyst
    Bank of America Corp.
    Email:[email protected]

    Hi Krish,
    In WSDL, the data types passed between applications are described in schema
    and
    this is key for interop. I dont know of any standard/natural mapping for
    values types,
    object reference, etc in a binary protocol (like JRMP, IIOP) to schema. For
    eg:
    say there is serializable object Foo, which is the argument to a remote
    method in RMI.
    Object Foo can have data + behavior. It may be possible (not always, i
    think) to
    describe the data in Foo as schema, but how can one describe the behavior?
    So, if WSDL is the only contract between the server and client (key
    requirement
    for interop), then IMHO RMI can not be described by WSDL.
    Also, WSDL was designed for future extensions and does not map well to a
    programming API. WSIF trys to expose all the gory WSDL details and its apis
    are very clumsy.
    These were the two main reason to vote it down at JAX-RPC EC.
    I am attaching an example that shows, how to introspect WSDL and invoke
    a method using JAX-RPC (with little extension to the std api). Also, it
    shows
    how to handle complex type without data binding. Will this solve your
    problem?
    I am very interested to get your feedback on this.
    BTW, This example will only work with WLS 8.1.
    regards,
    -manoj
    "Krish Venkataraman" <[email protected]> wrote in message
    news:[email protected]...
    >
    >
    Mike...thanx for the inputs...
    As per ur suggestion...I have taken this offline and mailed u [email protected]
    also....lemme know if thatz cool...
    there are my observations..lemme know what am i missing..
    1) The main difference I see between JAX-RPC and WSIF, is that with WSIFclient
    it is easier to port to services talking
    via other ports like RMI,IIOP etc...where as JAX-RPC is understandsonly SOAP(atleast
    for now).
    2) Lets assume for the time-being that I would be interested only to talkto services
    talking SOAP.
    Then why do I need WSIF ?
    3) I can have a JX-RPC client , I can have a similar generic(reflection)code
    for built-in/primitive datatypes and for
    complex datatypes I anywayz would be doing the same thing(requiringthe java
    representation of the datatype unless I use
    something like JROM or something which I do not want to) in JAX-RPC orWSIF.
    >
    4) As far as syncronous or asyncronous invocation is concerned , myunderstanding
    is that my client call is going to remain the
    same ..the service provider is going to either use message-oriented orRPC
    on his side...
    Again assuming that I am interested only with services talking SOAP, thiscould
    be my generic client invocation design
    Background is that my client is going to run from within a WLS70sp1
    Actors:
    a) webSevice1ClientSessionBean : This will be a stateless session beanwhich might
    have knowledge about webSevice1's end-point ,
    complex dataTypes if any.
    (There would be other session beans like this which would haveknowledge about
    other specific webservice)
    b) GenericWebServiceInvoker : This will have knowledge about everythingwithin
    the webservice-standards/protocols.
    eg:
    //set weblogic ServiceFactory
    System.setProperty( "javax.xml.rpc.ServiceFactory",
    "weblogic.webservice.core.rpc.ServiceFactoryImpl" );
    //create service factory
    ServiceFactory factory = ServiceFactory.newInstance();
    //define qnames
    String targetNamespace = "http://soapinterop.org/";
    QName serviceName = new QName( targetNamespace, "SimpleTest" );
    QName portName = new QName( targetNamespace, "SimpleTestSoap" );
    QName operationName = new QName( "http://soapinterop.org/",
    "echoStruct" );
    //create service
    Service service = factory.createService( serviceName );
    TypeMappingRegistry registry = service.getTypeMappingRegistry();
    TypeMapping mapping = registry.getTypeMapping(
    SOAPConstants.URI_NS_SOAP_ENCODING );
    mapping.register( SOAPElement.class,
    new QName( "http://soapinterop.org/xsd", "SOAPStruct" ),
    new SOAPElementCodec(),
    new SOAPElementCodec() );
    //create call
    Call call = service.createCall();
    //set port and operation name
    call.setPortTypeName( portName );
    call.setOperationName( operationName );
    call.addParameter( "inputStruct",
    new QName( "http://soapinterop.org/xsd", "SOAPStruct" ),
    ParameterMode.IN);
    All parameter values specific to a particular webservice likeQName,targetNameSpace
    etc will be sent to this invoker by
    webSevice1ClientSessionBean. The GenericWebServiceInvoker will invokethe
    service
    (using reflection for primitive/builtin types) and alwayz accept anobject
    from the service operation and just return
    that "object" back the webSevice1ClientSessionBean.ThewebSevice1ClientSessionBean
    will know how to interpret the
    complexdataType or builtInDatatype whichever is returned.TheGenericWebServiceInvoker
    will not have any application
    specific knowledge...it will just have knowledge about how todiscover, invoke
    any SOAP webservice...
    Somewhere in the beginning of GenericWebServiceInvoker I will use JAXRto
    discover services from UDDI if needed.
    This way I will have a generic webservice client invocation frameworkwhich
    can invoke any service which talks SOAP.
    Now lemme know how the above picture looks and what is missing...
    I have some questions :
    1) Incase of complex dataTypes, I will have itz XML representation inthe
    publisher's WSDL and the publisher will give
    me the java representation of the complex dataType.But how does myclient
    JAX-RPC know how to map the XML
    to the java representation unless I specify the mapping somewhere?Does
    the TypeMapping/TypeMappingRegistry do this ?
    Thanx,
    Krish
    "Michael Wooten" <[email protected]> wrote:
    You know, it's really cool to hear guys thinking things through, before
    they "jump
    on a bandwagon" :-)
    Anyway, I suspect that the performance overhead of doing reflection,
    and heavy
    server-side code intrusion, is what has made a lot of developers balk
    at using
    WSIF. I would check out the IBM newsgroups, to see what the general
    developer
    sentiment is on WSIF.
    To achieve any sort of decent performance with JAX-RPC based webservices,
    you
    need to do a fair amount of optimization/tuning on both the client and
    server
    side. I recommend setting up your own "lab environment" for doing these,
    so you
    can see exactly what's making things improve/degrade. If you are really
    interested
    in this topic, we should talk about it "off-line".
    In general, the more "dynamic" things are on the client side, the slower
    things
    will be, the more you really need to question if you really need them
    to be dynamic
    :-) Does making it "dynamic" really offer something that you can't get
    from a
    "static" version? If not, who's really benefiting here. I mean, com'n.
    All you
    really want to do is invoke an operation, right? By the time you get
    all the information
    it takes to do a dynamic invocation (i.e. port, target namespace, data
    type for
    input argument, serializer/deserializer for each non-built-in data type,
    etc.),
    your client looks like you are trying to boot a PDP-11! LOL! For those
    of you
    who don't know what a PDP-11 is, it's an early computer (from the'60-'70),
    that
    you actually had to use switches to create the "binary instructions"
    to boot it
    up!
    From a PM's (product manager's) perpective, I wouldn't even let thedevelopers
    modify "working" EJBs to expose them as a web service. Alarm bells should
    go off
    in your head, if you have to modify existing server-side code to expose
    a company
    asset as a web service.
    Response to OT comment: WebLogic Server 7.0 uses its own implementation
    of JAX-RPC
    1.0. This implementation, I've been told by one of the BEA engineering
    that worked
    on it, has been certified to be JAX-RPC compliant by Sun. Don't know
    about Apache
    Axis, in this regard. I use both Apache Axis and the JWSDP with WLS 6.1,
    but I
    haven't really spent a lot of time looking for differences between our
    (BEA's)
    implementation, and theirs.
    Regards,
    Mike Wooten
    "Krish Venkataraman" <[email protected]> wrote:
    Hey Mike ...
    I hear ya..and I see the significance of WSIF...but that IBM started
    it a year
    back and itz not yet stabilized is what is holding me back...
    U mite have a better hold of what WSIF can do...whatever I could grasp
    from yesterday
    is this...
    a)It reads meta data from the wsdl and using a reflection mechanismcalls
    the
    service operations...
    I see examples with primitive datatypes..but what happens when
    complex/custom
    datatypes come into play...
    Would the client code differ between synchronous invocation toasynchronous
    invocation...
    And aleast in the samples for the WSIF distribution for connectors like
    EJB/JMS
    etc, the code does not look generic anymore..there are specific calls
    to operations
    and parameters...
    Also Mike , what is the trade-off on performance between having adynamic
    client(lets
    say based on WSIF)or having a static client...the extent of reflection
    a dynamic
    client will have to do and create SAAJ objects at runtime will beenormous..
    Also I know that there is a relevant API...but can u give an examleshowing
    me
    how I could discover services from UDDI ..?
    Out of this current topic...does BEA use itz own implementation of SOAP
    in itz
    webservice implementation...and how does it compare with AXIS ?
    Thanx,
    Krish
    "Michael Wooten" <[email protected]> wrote:
    Hi Krish,
    Well, I guess that's how things are when "needed functionality exceeds
    the current
    state of a technology" :-)
    I (not necessarily BEA) look at it like way:
    1. IBM co-authored the "Big 3" XML grammars for the current web
    services
    stack.
    2. IBM always appears to be "there, somewhere" in the new crop ofproposed
    additional
    XML grammars for "partially agreed upon extension layers", for theweb
    services
    stack.
    3. IBM donated it's original SOAP implementation to the open-sourcecommunity.
    4. IBM came up with WSIF over a year ago.
    5. IBM's WSTK uses the Apache Axis stuff.
    6. A lot of the JAX-RPC/JAXM API is based on the Apache SOAP and Apache
    Axis implementations.
    7. It looks like IBM may have donated WSIF to Axis.
    8. You appear to need something like WSIF :-)
    So, there's probably at least a 60/40 chance that some WSIF-like thing
    will make
    it into the JWSDP, right? If you want "higher odds", you should talk
    to the folks
    working on the JWSDP, as they are somewhat "in charge" here :-)
    Regards,
    Mike Wooten
    "Krish Venkataraman" <[email protected]> wrote:
    Yes...I am surely lookin at something similar...but that framework
    not
    being standardized
    scares me as I have seen many good ideas not seeing the light of the
    day...and
    I do not want to design something using a framework which might remain
    un-standardized..
    what are ur thots..
    Thanx,
    Krish
    "Michael Wooten" <[email protected]> wrote:
    Hi Krish,
    It sounds like you want WSIF :-)
    "WSIF allows stubless or completely dynamic invocation of a Web
    service,
    >>>>>>
    based upon examination of the meta-data about the service at runtime.
    It
    also allows updated implementations of a binding to be plugged intoWSIF
    at
    runtime, and it allows the calling service to defer choosing a
    binding
    until
    runtime."
    Correct?
    This is a relatively new "unofficial" addition to the Web ServicesStack,
    so it
    is not in WLS 7.0 (or Sun's JWSDP) yet. See the following link formore
    details:
    http://xml.apache.org/axis/wsif
    Regards,
    Mike Wooten
    "Krish Venkataraman" <[email protected]> wrote:
    Hey ,
    I have an application which requires to talk to 2 different
    published
    webservices
    from 2 different systems. Now instead od designing static webservice
    clients for
    each of these systems(which would involve having separate proxyjars
    etc),
    I am planning to design a dynamic webservice locator and invoker....
    I know that we can have webservice clients which are dynamic tothe
    extent
    that
    we can create proxy objects at runtime once we know the endpoint
    WSDL..
    eg:
    ServiceFactory factory = ServiceFactory.newInstance();
    QName serviceName =new QName
    targetNamespace,"net.xmethods.services.stockquote.StockQuoteService");
    >>>>>>>
    QName portName = newQName(targetNamespace,"net.xmethods.services.stockquote.StockQuotePort");
    >>>>>>>
    QName operationName = newQName("urn:xmethods-delayed-quotes","getQuote");
    >>>>>>>
    URL wsdlLocation = newURL("http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl");
    >>>>>>>
    // create service
    Service service = factory.createService(wsdlLocation, serviceName);
    // create call Call call = service.createCall(portName,
    operationName);
    >>>>>>>
    >>>>>>>
    My question on this...if I have a dynamic approach like the abovewhat
    are the
    pros and cons..I guess it would surely have more overhead comparedto
    a static
    client...?
    Secondly ,is it even feasible to design a dynamic client in such
    a
    way
    that the
    endpoint WSDL could also be an unknown and my generic client wouldalso
    locate
    the end-point dynamically and then invoke dynamic calls as above...
    If anybody can share their insights on a dynamic webservice client
    I would really
    appreciate it...
    Thanx,
    Krish
    KRISH.VENKATARAMAN
    Senior Technology Analyst
    Bank of America Corp.
    Email:[email protected]
    [BrowserClient.java]
    [DynamicClient.java]

  • Soap receiver target url

    Hi guys,
    I'm having some doubts on a soap receiver adapter.
    Imagine, you use the ID to define a webservice.
    Two simple synchronous interfaces, meaning, you send a string and receive another string via SOAP.
    In the ID you define the comm channels, the soap sender and receiver.
    My doubt is in the receiver side, you have tou specify the target URL. The problem is, how can I know the target URL, since the service will only be defined later. Meaning, I want XI to answer to a sender client which will use the WSDL generated after by the ID tool.
    Where should XI answer to?
    I've seen some blogs concerning some similar issues, but none concerning the problem I'm facing.
    Can you guys help me or give me any hints on how to work around the problem...

    Hi,
    If you have a SOAP client sending a request message to XI and expecting a Response message, you need to configure SOAP sender adapter only. You do not need SOAP receiver adapter in this scenario. Sender adapter doesnt require any URL, moreover when you define a webservice in XI, you have to construct a URL where this web service can be reached.
    You need the SOAP receiver adapter (where u need to mention the URL of teh service) if the receiver system exposes a webservice to which you are trying to connect from XI.
    What are ur sender and receiver systems?
    praveen

  • SOAP Adapter with Webservice Provider URL

    This is what I did. Configured a Receiver SOAP adapter with SOAP 1.1 Message Protocol. Target URL is the WSDL URL Binding (SOAMANAGER) with authentication.
    When I test the scenario the Message is through PI and Communication Channel - No errors
    However strangely I do not see anything happening in ECC. Sometimes a log shows up in SOAMANGER "SOA Runtime Log/Trace Viewer" which has SOAP Runtime Error Information. This is very inconsistent again.
    I have tested SOAP with XI 3.0 Message Protocol and the messages are through in ECC. No problems there.
    Also Tried with directly using "SOAP Location URL" from within the Binding WSDL URL. This also results in DUMP in ECC.
    Does SOAP adapter with SOAP 1.1 Message Protocol support Webservice Provider in ECC EHP5(SOAMANAGER Binding)? Is it built to support this kind of scenario? Or only WS adapter can invoke the Binding URL?
    Is there any other URL that can be invoked with SOAP -SOAP1.1?
    Using PI 7.1 Service Pack 5.
    Pavan.
    Edited by: pavan sodani on Aug 12, 2011 4:57 AM

    Did you properly expose the RFC/Class in SOAMANAGER of the backend system? there is no endpoint created by default. You have to create and endpoint for a logical system (I guess). Then try calling the webservice from any 3rd party tool like Altova XML Spy. If that works then the ABAP webservice is working good and could be called from PI.
    VJ

  • Dynamically passing the URL

    Hi
    In the receiver SOAP Adapter I got to send the Target URL ( Connection Parameters.....> Target URL) dynamically on the basis of URL that I get from payload. Is it possible to do this by using UDF ?? If so could you plz explain how we can do this ?? Plz point me it there are any materials/blogs/threads available on  this topic ??
    Regards
    kumar

    Hi palnati
    you can use Adapter Specific Identifiers and set the SOAP URL and SOAP Action dynamically.
    Here is the link for doc which can help u out :
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873a22024f79
    look this thread also
    Setting interface name dynamically from client for SOAP Adapter...
    Regds
    Abhishek

  • Target URL - Receiver SOAP Adapter

    Hi experts,
    I would like to know if the "Target URL" parameter in the Receiver SOAP Adapter is a case sensitive one.
    Point will be given,
    Tks
    Daniela Machado

    From my experience, I have used the Receive SOAP adapter to contain the URL of the Sender SOAP adapter of XI itself and in these calls the URL was not case sensitive ( the hostname and port are not case sensitive ) but the Business System , Comm Channel Name , Interface Name and Namespace are case sensitive.
    When calling a true webservice, I never paid real importance to the case sensitivity as I used to take the URL from the WSDL provided by the Webservice.
    Though not the answer to your question hope it helps.
    Regards
    Bhavesh

  • How to set Target URL in Jdeveloper 10.1.3

    There is an error when i build a portlet with Jdeveloper coz Target URL is wrong
    So i want to set Target URL again to referenced to localhost
    ( I set in hosts file:
    *192.168.1.2 namdinh.com*
    but when I build my portlet, Target URL still is http://192.168.1.2:8988..... )
    Please show me what i must do in this case :(
    Thanks so much!

    Hi,
    Go to Tools > Embedded OC4J Server Preferences... > Global > Startup.
    Look for the options in "Host Name or IP Address Used to Refer to Embedded OC4J".
    William

  • Target URL in the Receiver SOAP channel in PI 7.11

    Hi
    I have designed integrated Configuration in PI 7.11 and i have SOAP sender and SOAP receiver. SOAP sender is fine but for SOAP receiver i have an issue with the target URL that i selected.
    Initially the receiver was ABAP proxy with HTTP connection as we dont have ABAP related adapters in AAE i used SOAP. But i have used the same URL that is the Target host configured in the HTTP ABAP connection to the target system. Then i am getting the following error at the receiver comm channel
    Message processing failed. Cause: com.sap.aii.af.sdk.xi.util.URI$MalformedURIException: no scheme
    I am sure i am doing a mistake, the URL i am using is wrong as it is not meant for SOAP calls. Please suggest me what needs to be done here.

    ..I am sure i am doing a mistake, the URL i am using is wrong as it is not meant for SOAP calls. Please suggest me what needs >>to be done here
    You are using Integrated configuration with PI 7.1 EHP1 version. That means SOAP supports as PI native protocol (XI) for PROXY scenario. So, you have to create soap receiver adapter and choose message protocol as XI.
    Integrated configuration occurs in java stack engine and XI adapter(proxy) not exists there. Only if you do classical processing (IE) then you can use XI adapter at the receiver side. Thats the reason you dont find XI adapter in the integrated configuration.
    Hope I answered your question

  • SOAP Receiver Adapter - Target URL

    Hi,
    We have a web service scenario, where the Sender is a III Party Java system and PI is the middleware and ECC as our receiver system.  We have a wsdl binding generated from SOAMANAGER.  We are using the WSDL Endpoint as the Target URL in our SOAP Receiver Adapter.  The scenario works perfect with desired results.
    Now that webdispatcher comes into place for load balancing and the BASIS team has given a different URL to use in the Target URL of the SOAP Reciver Adapter.  The scenario throws the following eorr:-
    Adapter Framework caught exception: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 302 Redirect
    Has anyone come acrossed such issues.  Looking forward for a solution.
    Thanks & Best Regards.
    Kris

    > Now that webdispatcher comes into place for load balancing and the BASIS team has given a different URL to use in the Target URL of the SOAP Reciver Adapter.  The scenario throws the following eorr:-
    >
    > Adapter Framework caught exception: java.io.IOException: invalid content type for SOAP: TEXT/HTML; HTTP 302 Redirect
    >
    > Has anyone come acrossed such issues.  Looking forward for a solution.
    I wonder why your basis team is not able to help you.
    It seems that the web dispatcher is not set up correctly.
    http://en.wikipedia.org/wiki/HTTP_302

  • Is there a way to remove the changes to the URL Bar, specifically the status information and the target URL?

    To begin, I utterly despise the changes to the URL Bar and the removal of the Status bar. In order to stay with the latest version of Firefox I am attempting to recreate the look and feel as best I can.
    I have already installed the Status-4-Evar extension. The only thing that remains is to remove the status information and the target URL from the bar.
    Are there any settings in about:config that will allow me to make these changes?
    EDIT: Status information can be removed by toggling. status4evar.statusInUrlBar. Still looking for a way to remove the target URL...

    This code in [http://kb.mozillazine.org/UserChrome.css userChrome.css] below the @namespace line seems to remove the links that appear on hover.
    <pre><nowiki>@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); /* only needed once */
    .urlbar-textbox-container {color: inherit !important;}
    .urlbar-textbox-container-children {opacity: 1 !important;}
    .urlbar-over-link-box {opacity: 0 !important;}
    </nowiki></pre>
    See http://kb.mozillazine.org/Editing_configuration#How_to_edit_configuration_files

Maybe you are looking for

  • Unable to search icloud inbox in Outlook 2013, Windows 8.1

    HI, I hope someone can help, I've been struggling with this for a few weeks. I largely use my iPad and iPhone for email but have recently been more reliant on my Windows laptop as I have need to create items in office and it's simply easier on the la

  • Bapi to save as completed an incoming invoice

    Hi, is there a bapi allowing to create an incoming invoice an saving it as completed?. i don´t  need to park it. i´d like to save the document as completed. (i did try with BAPI_INCOMINGINVOICE_PARK but what i got was a parked document and what i nee

  • How to change Boardercolor of awt.Button???

    Can someone Help me? (I am new and i do not know if in an other thread is an answer posted) I want to make a Button display in my own colors. As I know in awt.Button there is just the possibility to change the backgroundcolor. But I also need to chan

  • My movie download is stuck in process mode for 10 hours

    I downloaded a movie to watch on a trip and for the last 10+ hours it's seems to be stuck in the process mode. I can't watch the movie I can't delete the movie,

  • Passing collection or array to function: shallow copy or not?

    Hello all, When passing a collection or an array to a function, what is most used practice to store the given collection in some class member field: reference-copy or a shallow copy? I believe it's frustrating to see that there is no real 'standard'