How to invoke a web service asynchronously using ws-addressing model?

Hi Gurus,
We are invoking an external web service asynchronously using Oracle Work Flow Business events using the following mechanism -
1)Created a web service invoker event to invoke the web service.
2)Created a subscription that invokes the web service (provided the wsdl address, operation info).
3)Defined a subscription parameter WFBES_CALLBACK_EVENT with value pointing to a recieve event.
4)Created a receive event(parameter value for WFBES_CALLBACK_EVENT) and a subscription that directs the response to a custom PL/SQL function to process response.
so far so good. We were able to invoke the web service and get and process the response.
Problem: The external web service can take upto 10 hrs to process the request. A time out of 2 hrs is set on the server hosting the external web service. So when the external web service takes more than 2 hrs to process the request and it times out and we get the following error on EBS side -
'l_error_message:oracle.apps.fnd.wf.bes.InvokerException: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: oracle.j2ee.ws.saaj.ContentTypeException: Not a valid SOAP Content-Type: text/html; charset=iso-8859-1'
Now the external web service providers are suggesting that we are not calling their web service asynchronously and we should use ws-addressing model to do so.
Is there a way to invoke this web service using ws-addressing model using business events or from PL/SQL or OA middle-tier?
Regards,
Sunil
CMRO Development.
I am providing here the WSDL of the external web service -
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://service.sdk.webservices.enigma.com" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:ax21="http://service.sdk.webservices.enigma.com/xsd" xmlns:ns="http://service.sdk.webservices.enigma.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://service.sdk.webservices.enigma.com/xsd" xmlns:ax22="http://service.sdk.webservices.enigma.com">
<xs:import namespace="http://service.sdk.webservices.enigma.com"/>
<xs:complexType name="JCGWebServicesException">
<xs:complexContent>
<xs:extension base="ax22:Exception">
<xs:sequence>
<xs:element minOccurs="0" name="id" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="message" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="JCGServiceReply">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="pdfStatus" nillable="true" type="ax21:PdfStatus"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PdfStatus">
<xs:sequence>
<xs:element minOccurs="0" name="jobCardID" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="pdfPath" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="status" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://service.sdk.webservices.enigma.com" xmlns:ax23="http://service.sdk.webservices.enigma.com/xsd">
<xs:import namespace="http://service.sdk.webservices.enigma.com/xsd"/>
<xs:complexType name="Exception">
<xs:sequence>
<xs:element minOccurs="0" name="Exception" nillable="true" type="xs:anyType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="JCGWebServicesException">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="JCGWebServicesException" nillable="true" type="ax21:JCGWebServicesException"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="runJobCard">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="a_WorkpackageFilePath" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="a_userName" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="runJobCardResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" nillable="true" type="ax21:JCGServiceReply"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="JCGWebServicesException">
<wsdl:part name="parameters" element="ns:JCGWebServicesException">
</wsdl:part>
</wsdl:message>
<wsdl:message name="runJobCardResponse">
<wsdl:part name="parameters" element="ns:runJobCardResponse">
</wsdl:part>
</wsdl:message>
<wsdl:message name="runJobCardRequest">
<wsdl:part name="parameters" element="ns:runJobCard">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="JCGServicePortType">
<wsdl:operation name="runJobCard">
<wsdl:input message="ns:runJobCardRequest" wsaw:Action="urn:runJobCard">
</wsdl:input>
<wsdl:output message="ns:runJobCardResponse" wsaw:Action="urn:runJobCardResponse">
</wsdl:output>
<wsdl:fault name="JCGWebServicesException" message="ns:JCGWebServicesException" wsaw:Action="urn:runJobCardJCGWebServicesException">
</wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="JCGServiceSoap11Binding" type="ns:JCGServicePortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="runJobCard">
<soap:operation soapAction="urn:runJobCard" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="JCGWebServicesException">
<soap:fault name="JCGWebServicesException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="JCGServiceSoap12Binding" type="ns:JCGServicePortType">
<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="runJobCard">
<soap12:operation soapAction="urn:runJobCard" style="document"/>
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
<wsdl:fault name="JCGWebServicesException">
<soap12:fault name="JCGWebServicesException" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="JCGService">
<wsdl:port name="JCGServiceHttpSoap12Endpoint" binding="ns:JCGServiceSoap12Binding">
<soap12:address location="http://localhost:8080/JCG/services/JCGService"/>
</wsdl:port>
<wsdl:port name="JCGServiceHttpSoap11Endpoint" binding="ns:JCGServiceSoap11Binding">
<soap:address location="http://localhost:8080/JCG/services/JCGService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Edited by: sikumar on Jun 22, 2010 1:50 PM

Bharat,
You dont need a Business Event setup to invoke a BPEL process from PL/SQL unless you have a special case and you need to process the response from the BPEL process in a separate thread (or in background)..
For a straight call to BPEL process from PL/SQL, here is a sample script -
function "MYTEST0" return varchar2 AS
soap_request varchar2(30000);
soap_respond varchar2(30000);
http_req utl_http.req;
http_resp utl_http.resp;
resp XMLType;
i integer;
helpStr varchar2(30000);
BEGIN
soap_request:= '<?xml version = ''1.0'' encoding = ''UTF-8''?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns0="
http://xmlns.oracle.com/TestWS">
<env:Body>
<ns0:TestWSProcessRequest>
<ns0:input>abc</ns0:input>
</ns0:TestWSProcessRequest>
</env:Body>
</env:Envelope>
/* the BPEL process name is TestWS */
http_req:= utl_http.begin_request
( 'http://hostname:7777/orabpel/default/TestWS/1.0'
, 'POST'
, 'HTTP/1.1'
utl_http.set_header(http_req, 'Content-Type', 'text/xml');
utl_http.set_header(http_req, 'Content-Length', length(soap_request));
utl_http.set_header(http_req, 'SOAPAction', 'process');
utl_http.write_text(http_req, soap_request);
http_resp:= utl_http.get_response(http_req);
utl_http.read_text(http_resp, soap_respond);
utl_http.end_response(http_resp);
resp:= XMLType.createXML(soap_respond);
resp:= resp.extract('/soap:Envelope/soap:Body/child::node()',
'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"');
helpStr := '';
i:=0;
loop
helpStr := helpStr || substr(soap_respond,1+ i*255,250);
i:= i+1;
if i*250> length(soap_respond)
then
exit;
end if;
end loop;
return helpStr;
END;

Similar Messages

  • Invoking a web service asynchronously

    We can not invoke a web service asynchronously from a standalone java client and a client web service is needed for that.I am not clear why is it so??plz tell me.

    you can write an asynchronous client with JAXWS Dispatch. There are two styles: Polling and callback.

  • How to invoke a web service using https

    Hi,
    I have a few security related questions surrounding BPEL process manager.
    1. Does the BPEL engine have the capability to invoke a web service using https (HTTP over SSL)? Does it automatically do that if partner link URI starts with https:// ?
    2. If not, what needs to be done to enable accessing a https based web service?
    3. I need to write a web service that accepts a message and updates certain information in the database. The web service will be deployed in an OC4J instance in Oracle App Server. We want to allow the web service to be accessed from BPEL only by users registered in the database. What is the recommended way to pass username and password to a webservice if service is invoked from BPEL process manager? Note that specifying username/password in bpel.xml is not an option.
    Thanks,
    Pranav

    1. Does the BPEL engine have the capability to invoke a web service using https (HTTP over SSL)? Does it automatically do that if partner link URI starts with https:// ?
    We currently don't have support for HTTP over SSl. We are working on it to include this functionality in near future.
    2. If not, what needs to be done to enable accessing a https based web service?
    I am not sure it is possible with current product offering. I will confirm it after discussing with our concerned development group. There is some work going to integrate with Oblix security mechanism [recently acquired by Oracle].
    3. I need to write a web service that accepts a message and updates certain information in the database. The web service will be deployed in an OC4J instance in Oracle App Server. We want to allow the web service to be accessed from BPEL only by users registered in the database. What is the recommended way to pass username and password to a webservice if service is invoked from BPEL process manager? Note that specifying username/password in bpel.xml is not an option.
    This will be easier to do if we can use Oblix along with BPEL PM. Could you please let us know more about your application so that we can provide you the customized solution till it's part of the product. You can send this query to [email protected] so that our product management team can give you more detailed roadmap regarding this.
    HTH.
    Thanks,
    Rakesh

  • 10g: Invoking a web service asynchronously from BPEL

    Hello,
    I am trying to figure out a good, generic method for making a previously synchronous web service asynchronous and changing the way in which it is invoked from BPEL. I am using SOA Suite 10g (10.1.3.5)
    As I understand, one possible method to achieve this is to use IDeliveryService.post() to deliver the web service's response to the BPEL process. For this route, the standard practice of correlation seems to be to supply a correlation Id when invoking the web service and returning the same correlation id as a part of the web service's response message. However, I want to avoid this since it would mean that all response messages from the web service (10+) would have to be modified to include a correlationId, which is problematic in the special case of this web service. Including a correlationId in the request message is possible, however.
    I have tried the approach of using the conversation Id directly instead of the correlation Id, by reading the value of ora:getConversationId(), passing this to the web service and setting the property CONVERSATION_ID of the response NormalizedMessage to the same value when returning. However, I cannot seem to get this approach right. Is this possible at all?
    An alternative might be to use WS-Addressing, but I do not know if I can make the web service support this - it is written using the EJB WebService-Annotations feature and runs on OC4J as well.
    Do you have any suggestions on how this problem could be resolved?
    Edited by: 901765 on 12.12.2011 06:01

    I have found the following tutorial that implements something similiar to what I am trying to do: http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/odi/10g/10135/odiscenario_bpelcallback/odiscenario_bpelcallback.htm#t3
    Because of this, I am now confident that the conversation IDs can be used to achieve correlation. I have implemented the pattern by performing
    an invoke activity on the web service, passing the result of ora:getConversationId() as part of the message. The conversation Id returned is of UUID-Form.
    After the invoke activity, I have added a pick activity to receive the response message supplied by the web service through IDeliveryService.post(...). I can see that the message is received correctly by loooking at the contents of DLV_MESSAGE. However, the pick activity times out every time (after 10m). Looking at DLV_SUBSCRIPTION reveals that the conversation_id for the pick/receive activity is set to a value of the form bpel://localhost/default/MyBpelProcessName~1.0/7610001-BpInv0-BpSeq2.7-2. As far as I know, this should instead be set to the UUID that ora:getConversationId() returned before performing the invoke activity. What is going wrong here?
    Thanks for your help!

  • How to invoke a Web Service from PL/SQL with Complex Type as  input.

    Hello,
    I am trying to invoke a web service from PL/SQL using the UTL_DBWS package.
    The web service expects a complex type as input (defined below):
    <xs:complexType name="MsgType">
    <xs:sequence>
    <xs:element name="sender" type="xs:string"/>
    <xs:element name="messageId" type="xs:string"/>
    <xs:element name="messageType" type="xs:string"/>
    <xs:element name="dateSent" type="xs:date"/>
    </xs:sequence>
    </xs:complexType>
    How to construct input to this in PL/SQL Procedure?
    Has any body tried this before?
    An exmaple will be helpful.
    Thanks

    Dear,
    I have read your article, it is useful for me. But I cannot Apply to my case. Please kindly help me. Thank you.
    When running, the error occurs:
    1:39:31 Execution failed: ORA-20000: soapenv:Server.userException - org.xml.sax.SAXParseException: Attribute name &quot;password&quot; associated with an element type &quot;user&quot; must be followed by the &apos; = &apos; character.
    My webservice Url: http://abc.com.vn:81/axis/ABC_WS_TEST.jws?wsdl
    I make PL/SQL (similiar as your example)
    FUNCTION INVOKESENDMT
    RETURN VARCHAR2
    AS
    l_request soap_api.t_request;
    l_response soap_api.t_response;
    l_return VARCHAR2(32767);
    l_url VARCHAR2(32767);
    l_namespace VARCHAR2(32767);
    l_method VARCHAR2(32767);
    l_soap_action VARCHAR2(32767);
    l_result_name VARCHAR2(32767);
    p_zipcode VARCHAR2(160);
    BEGIN
    --p_zipcode:='''TEST'' ; ''TEST'';''84912187098'';''84912187098'';''0'';''8118'';''1'';''000001'';''ThuNghiem'';''''';
    p_zipcode:='TEST';
    -- Set proxy details if no direct net connection.
    --UTL_HTTP.set_proxy('myproxy:4480', NULL);
    --UTL_HTTP.set_persistent_conn_support(TRUE);
    -- Set proxy authentication if necessary.
    --soap_api.set_proxy_authentication(p_username => 'TEST',
    -- p_password => 'TEST');
    l_url := 'http://abc.com.vn:81/axis/ABC_WS_TEST.jws';
    l_namespace := 'xmlns="' || l_url || '"';
    l_method := 'sendMT';
    l_soap_action := l_url || '#sendMT';
    l_result_name := 'sendMTResponse';
    l_request := soap_api.new_request(p_method => l_method,
    p_namespace => l_namespace);
    soap_api.add_parameter(p_request => l_request,
    p_name => 'user password sender receiver chargedflag servicenumber messagetype messageid textcontent binarycontent',
    p_type => 'xsd:string',
    p_value => p_zipcode);
    l_response := soap_api.invoke(p_request => l_request,
    p_url => l_url,
    p_action => l_soap_action);
    l_return := soap_api.get_return_value(p_response => l_response,
    p_name => l_result_name,
    p_namespace => l_namespace);
    RETURN l_return;
    END;

  • How to invoke HTTP Web Services in an Adobe Interactive Form

    Hi all,
    I am using Adobe Livecycle Designer stand-alone (without Netweaver integration), currently a trial 8.2 version.
    I need to invoke an HTTP Web Service (non-SOAP) in an Adobe Interactive Form. The Net.HTTP method does not work due to security reasons. The error message I get is:
    (german)
    " NotAllowedError: Sicherheitseinstellungen verhindern den Zugriff auf diese Eigenschaft oder Methode.
    Net.HTTP.request:28:XFA:form1[0]:mysubform[0]:Region[0]:change"
    In english this translates to: "Security settings prohibit the call of this property or method.
    And indeed the "Javascript for Acrobat API reference" includes the following note:
    "Note:This method can only be made outside the context of a document (for example, in a folder level JavaScript)."
    So this method seems to be excluded from use in an Adobe document, e. g. in an interactive form. But why is it then listed at all? Is there a way to call HTTP Web Services in an Adobe Interactive Form by somehow branching out the call outside the document itself? Of course I do not want to call a SOAP service which then calls the HTTP Web Service
    Is there any other way to invoke HTTP Web Services in an Adobe Interactive Form?
    Thanks a lot for your response!
    Regards
    Christoph

    Hi,
    back again, had to handle other issues, sorry.
    Just to get a little more concrete. The condition depends on the context node attributes. So if an attribute is initial, it's field should not been shown, if it's not initial, it should ne shown. There are 6 context attributes and therefore 6 fields in the form. How can I get the attributes' value?
    And can I put them into the same subform or do I have to create 7 (6 conditions + blank-condition) subforms?
    I put the fields (textfield and context node value) that should be shown depending on conditions in a subform. So how can I adress this subform?
    I'm not so familiar with JavaScript, so please help me. I need something like:
    if (context_node_attribute X is initial) {
             subform_1.presence = "hidden" ;
    I tried it with
    if ( ARB_STUNDEN.rawValue != null) {
         Beratungsstunden.presence = "hidden" ;
    but it didn't work....
    Thanks,
    Tan

  • Error during JNDI lookup Accessing Remote EJB (access to web service restricted using declarative security model)

    Hello everyone,
    I developed a Web Service prototype accessing remote EJB using the EJB
    control with special syntax in the jndi-name attribute: @jws:ejb
    home-jndi-name="t3://10.10.245.70:7131/AccountDelegatorEJB"
    Everything works fine, but I get an error when I restrict access to my web
    service with a declarative security model by implementing steps provided in
    help doc:
    - Define the web resource you wish to protect
    - Define which security role is required to access the web resource
    - Define which users are granted the required security role
    - Configure WebLogic Server security for my web service(Compatibility
    Security/Users)
    I launch the service by entering the address in a web browser. When prompted
    to accept the digital certificate, click Yes, when prompted for network
    authentication information, enter username and password, navigate to the
    Test Form tab of Test View, invoke the method by clicking the button and I
    get the following exception:
    <error>
    <faultcode>JWSError</faultcode>
    <faultstring>Error during JNDI lookup from
    jndi:t3://10.10.245.70:7131/AccountDelegatorEJB[Lookup failed for
    name:t3://10.10.245.70:7131/AccountDelegatorEJB]</faultstring>
    <detail>
    <jwErrorDetail> weblogic.jws.control.ControlException: Error during JNDI
    lookup from jndi:t3://10.10.245.70:7131/AccountDelegatorEJB[Lookup failed
    for name:t3://10.10.245.70:7131/AccountDelegatorEJB] at
    weblogic.knex.control.EJBControlImpl.acquireResources(EJBControlImpl.java:27
    8) at
    weblogic.knex.context.JwsInternalContext.acquireResources(JwsInternalContext
    .java:220) at
    weblogic.knex.control.ControlHandler.invoke(ControlHandler.java:260) at
    ibas.AccountControl.getTransactionHistory(AccountControl.ctrl) at
    ibas.GetSecure.retrieveVisaHistoryTxn(GetSecure.jws:64) </jwErrorDetail>
    </detail>
    </error>
    I have a simple Hello method as well in my WebService (which is also
    restricted) and it works fine, but remote EJB access doesn't. I tested my
    prototype on Weblogic 7.2 and 8.1 platforms - same result.
    Is that a bug or I am missing some additional configuration in order to get
    that working. Has anyone seen similar behavior? Is there a known resolution?
    Or a suggested way to work around the problem?
    Thank you.
    Andre

    Andre,
    It would be best if this issue is handled as an Eval Support case. Please
    BEA Customer Support at http://support.beasys.com along with the required
    files, and request that an Eval support case be created for this issue.
    Thanks
    Raj Alagumalai
    WebLogic Workshop Support
    "Andre Shergin" <[email protected]> wrote in message
    news:[email protected]...
    Anurag,
    I removed "t3", still get an error but a different one (Unable to create
    InitialContext:null):
    <error>
    <faultcode>JWSError</faultcode>
    <faultstring>Error during JNDI lookup from
    jndi://secuser1:[email protected]:7131/AccountDelegatorEJB[Unable to
    create InitialContext:null]</faultstring>
    <detail>
    <jwErrorDetail> weblogic.jws.control.ControlException: Error during JNDI
    lookup from
    jndi://secuser1:[email protected]:7131/AccountDelegatorEJB[Unable to
    create InitialContext:null] at
    weblogic.knex.control.EJBControlImpl.acquireResources(EJBControlImpl.java:27
    8) at
    weblogic.knex.context.JwsInternalContext.acquireResources(JwsInternalContext
    .java:220) at
    weblogic.knex.control.ControlHandler.invoke(ControlHandler.java:260) at
    ibas.AccountControl.getTransactionHistory(AccountControl.ctrl) at
    ibas.GetVisaHistoryTransactions.getVisaHistoryTxn(GetVisaHistoryTransactions
    .jws:67) </jwErrorDetail>
    </detail>
    </error>
    Note: inter-domain communication is configured properly. The Web Service to
    remote EJB works fine without a declarative security.
    Any other ideas?
    Thank you for your help.
    Andre
    "Anurag" <[email protected]> wrote in message
    news:[email protected]...
    Andre,
    It seems you are using the URL
    jndi:t3://secuser1:[email protected]:7131/AccountDelegatorEJB
    whereas you should not be specifying the "t3:" protocol.
    The URL should be like
    jndi://secuser1:[email protected]:7131/AccountDelegatorEJB
    Please do let me know if you see any issues with this.
    Note that this will only allow you to access remote EJBs in the same WLS
    domain. For accessing EJBs on another domain, you need to configure
    inter-domain communication by
    following a few simple steps as mentioned at
    http://e-docs.bea.com/wls/docs81/ConsoleHelp/jta.html#1106135. This link has
    been provided in the EJB Control Workshop documentation.
    Regards,
    Anurag
    "Andre Shergin" <[email protected]> wrote in message
    news:[email protected]...
    Raj,
    I tried that before, it didn't help. I got similar error message:
    <error>
    <faultcode>JWSError</faultcode>
    <faultstring>Error during JNDI lookup from
    jndi:t3://secuser1:[email protected]:7131/AccountDelegatorEJB[Lookup
    failed for
    name:t3://secuser1:[email protected]:7131/AccountDelegatorEJB]</faultstr
    ing>
    <detail>
    <jwErrorDetail> weblogic.jws.control.ControlException: Error during JNDI
    lookup from
    jndi:t3://secuser1:[email protected]:7131/AccountDelegatorEJB[Lookup
    failed for
    name:t3://secuser1:[email protected]:7131/AccountDelegatorEJB] at
    weblogic.knex.control.EJBControlImpl.acquireResources(EJBControlImpl.java:27
    8) at
    weblogic.knex.context.JwsInternalContext.acquireResources(JwsInternalContext
    .java:220) at
    weblogic.knex.control.ControlHandler.invoke(ControlHandler.java:260) at
    ibas.AccountControl.getTransactionHistory(AccountControl.ctrl) at
    ibas.GetSecure.retrieveVisaHistoryTxn(GetSecure.jws:64) </jwErrorDetail>
    </detail>
    </error>
    Anything else should I try?
    P.S. AccountDelegatorEJB, the remote EJB my Web Service calls is NOTaccess
    restricted.
    I hope there is a solution.
    Thanks,
    Andre
    "Raj Alagumalai" <[email protected]> wrote in message
    news:[email protected]...
    Andre,
    Can you try using the following url with username and password
    jndi://username:password@host:7001/my.resource.jndi.object ?
    once you add webapp level security, the authenticated is the user who
    invokes the EJB.
    http://e-docs.bea.com/workshop/docs81/doc/en/workshop/guide/controls/ejb/con
    CreatingANewEJBControl.html?skipReload=true
    has more info on using remote EJB's.
    Hope this helps.
    Thanks
    Raj Alagumalai
    WebLogic Workshop Support
    "Alla Resnik" <[email protected]> wrote in message
    news:[email protected]...
    Hello everyone,
    I developed a Web Service prototype accessing remote EJB using the EJB
    control with special syntax in the jndi-name attribute: @jws:ejb
    home-jndi-name="t3://10.10.245.70:7131/AccountDelegatorEJB"
    Everything works fine, but I get an error when I restrict access to my
    web
    service with a declarative security model by implementing steps
    provided
    in
    help doc:
    - Define the web resource you wish to protect
    - Define which security role is required to access the web resource
    - Define which users are granted the required security role
    - Configure WebLogic Server security for my web service(Compatibility
    Security/Users)
    I launch the service by entering the address in a web browser. Whenprompted
    to accept the digital certificate, click Yes, when prompted for
    network
    authentication information, enter username and password, navigate tothe
    Test Form tab of Test View, invoke the method by clicking the buttonand
    I
    get the following exception:
    <error>
    <faultcode>JWSError</faultcode>
    <faultstring>Error during JNDI lookup from
    jndi:t3://10.10.245.70:7131/AccountDelegatorEJB[Lookup failed for
    name:t3://10.10.245.70:7131/AccountDelegatorEJB]</faultstring>
    <detail>
    <jwErrorDetail> weblogic.jws.control.ControlException: Error during
    JNDI
    lookup from jndi:t3://10.10.245.70:7131/AccountDelegatorEJB[Lookupfailed
    for name:t3://10.10.245.70:7131/AccountDelegatorEJB] at
    weblogic.knex.control.EJBControlImpl.acquireResources(EJBControlImpl.java:27
    8) at
    weblogic.knex.context.JwsInternalContext.acquireResources(JwsInternalContext
    .java:220) at
    weblogic.knex.control.ControlHandler.invoke(ControlHandler.java:260)at
    ibas.AccountControl.getTransactionHistory(AccountControl.ctrl) at
    ibas.GetSecure.retrieveVisaHistoryTxn(GetSecure.jws:64)</jwErrorDetail>
    </detail>
    </error>
    I have a simple Hello method as well in my WebService (which is also
    restricted) and it works fine, but remote EJB access doesn't. I testedmy
    prototype on Weblogic 7.2 and 8.1 platforms - same result.
    Is that a bug or I am missing some additional configuration in order
    to
    get
    that working. Has anyone seen similar behavior? Is there a knownresolution?
    Or a suggested way to work around the problem?
    Thank you.
    Andre

  • How to invoke secure web service from BPEL in SOA 11g

    In SOA 11g I have a simple bpel process in which I am invoking a secured webservice as partnerlink. The webservice which is used in bpel process is deployed in weblogic and the SSL port is enabled on weblogic server. The wsdl url starts with "https:\\hostname:port\servicename?wsdl"
    But I am getting compilation errors when i compiled the BPEL code
    Error(16,65): Load of wsdl "AddressBookManager.wsdl" failed
    Error(19,30): Load of wsdl "https://hostname:port/DV900/AddressBookManager?wsdl" failed
    Error(35,102): Cannot find Port Type "{http://oracle.e1.bssv.JP010000/}Oracle_E1_SBF_SEI_PkgBldFile_AddressBookManager" for "AddressBookManager" in WSDL Manager
    Can anyone please help me out in resolving this.
    Thanks,
    Shameem banu.

    Solution is you need to import the keystore into Jdeveloper jdk first.
    keytool -import -alias <name> -file <name>.pem -keystore <name>.jks -storepass <passwd>
    All details in <> are your specific keystore,pwd details.
    Then go to Jdeveloper/jdev/bin
    add the following to
    jdev.conf file
    AddVMOption -Djavax.net.ssl.trustStore=path_to_keystore\keystorename.jks
    AddVMOption -Djavax.net.ssl.trustStorePassword=password
    Then you can create partner link for https based wsdl
    Good Luck

  • Asynchronous web service call using PL/SQL

    Hi Guys,
    i'm using Apex 4.1.
    Is that possible to invoke a web service asynchronously within PL/SQL code block ? If so,
    How can i access the return value of the service when execution of that web service completes ?

    Bolev wrote:
    We have (Oracle 10g) automated process (ETL) based on internal data. Now there is an offer to incorporate existing web service call (let's say for additional record verification) in this process. Service call (I do not know what type of it yet) is using data from remote database which is not ours.Web service calls from PL/SQL is not that complex. You can use the standard UTL_HTTP package as shown in {message:id=4205205}.
    I never heard anybody goes this way especially for ETL processes.Well, if you push a million rows through the ETL process and the call overhead for the web service call (assuming perfect network and web server response) is 1 sec, that translates into 277+ hours of runtime alone for the validation to be done via web service.
    So yeah - it would seem kind of silly to use something like a web service to validate large volumes ETL data.

  • Invoking a web service from a java code

    Hello
    I created a simple Web service using JDevlper. It contains two methods
    1) getInf int () {
    return inf;}
    2) void setInf (int a) {
    inf = a;}
    I have deployed it on Oracle Application server. By inserting the address in a browser, I tried both methods and it works correctly.
    Here I am looking how to invoke this web service using a java client and use the method setInf (5 ) / * for example * /.
    I search but I have not found an answer that works :(. I hope you could help me to solve this problem.
    Thank you in advance

    Because you weren't told what to get, perhaps you already have it eh?
    What you want to read up about is JAX-WS, which is the webservice API bundled by default with your JDK (Java 6 and up). You'll find the wsimport tool in the bin directory of your JDK. I recommend you explore that directory and read up about all the executables you can find there, to be more prepared in the future. Know the tools you work with and all that. Most tools have a manual on this website:
    http://www.oracle.com/technetwork/java/javase/tech/index.html
    (under tools and utilities). Not wsimport, that is part of the jax-ws documentation. Better you look for jax-ws tutorials using Google, it will be quicker.

  • How to access .asmx Web Service using JAVA? Newbie

    Hello Experts,
    Currently, I have a project where in I have to access a ,NET web service. It is made of C#. I just want to ask how will I start the accessing process? I made this simple equation on how my project is.
    Java Project + C#.Net Web Service = Integration
    1. Do i need to create a Web Service too for the Java Project? If yes, What are the necessary tools needed for the creation of this Java Web Service?
    2. The .NET Web Service is available online. (It is made by other people).
    3. Based on the equation, what is the equivalent technology for the + sign?
    4. Can you site a concrete example for accessing a web service?
    5. I'm new here. Totally I have no idea where to start.
    6. Thank you experts.
    Edited by: Benedict.Aluan on 05 30, 08 1:38 PM
    Edited by: Benedict.Aluan on 05 30, 08 1:39 PM

    Hello
    Thanks a lot for your help ...
    I am developing simple J2EE based web service client using IBM WSAD 5.1. I have used the following code to call .asmx web service in Java
    String url = "http://www.w3schools.com/webservices/tempconvert.asmx?wsdl";
         String namespace = "http://tempuri.org/";
         name = request.getParameter("txtName");
         try
              System.out.println("In Internet Service");
              ServiceFactory factory = ServiceFactory.newInstance();
              Service serv = factory.createService(new URL(url),new QName(namespace,"TempConvert"));
              System.out.println("Got Service......");
              Call obj = (Call)serv.createCall();
              System.out.println("Got Call......");
              obj.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY,"");
              obj.setProperty(Call.OPERATION_STYLE_PROPERTY,"wrapped");
              obj.setTargetEndpointAddress(url);
              obj.setPortTypeName(new QName(namespace,"TempConvertSoap"));
              obj.setOperationName(new QName(namespace,"FahrenheitToCelsius"));
              obj.addParameter("param1",XMLType.XSD_STRING,String.class,ParameterMode.IN);
              obj.setReturnType(XMLType.XSD_STRING);
              System.out.println("Parameters Set.....");
              Object[] params = new Object[]{name};
              k = (String)obj.invoke(params);
              System.out.println("Result: "+k);
         catch(Exception e)
            System.out.println("Exception is : "+e);
        }But this code is throwing exception that
    Invalid Address "http://www.w3schools.com/webservices/tempconvert.asmx?wsdl"I have also tried this URL with Java Proxy. But it showing the same error.
    Plz can u tell me how to access .asmx web service ?
    Waiting 4 reply.

  • Invoking a Web Service using XI 2.0

    Hi all,
    I am attempting to create a scenario where an SAP application invokes a web service through XI 2.0.
    I have created an ABAP proxy to allow my ABAP to start the call process and have set up the message interfaces within the Integration Directory.
    I want XI to receive a call from this proxy and then act as the client to an existing Web Service.. calling it and bringing back a response... but it doesn't look like I can import the existing WSDL as a I would have expected.
    So... instead I have exported the Message Interface for the "out of XI" portion of the interface as a WSDL and have asked the Web Service provider to amend their service according to this XI generated WSDL.
    My difficulty now is how to use the SOAP adapter. Within the Integration Directory I presumably need to define the endpoint with XI Connectivity but I am not sure how to fill in the URL address of the SOAP adapter...
    Any help on how to configure the actual SOAP adapter to fulfill this requirement would be great too.
    I have looked around the boards to see if I could work this out from previous posts but without success so far.
    It's a synchronous scenario and basically should look like...
    ABAP Proxy->XI->SOAP Adapter->Web Service->XI->ABAP Proxy
    Many thanks,
    Gordon

    Hi Gordon,
    here is an example for SOAP-Adapter config:
    # Bubble adapter java class
    classname=com.sap.aii.messaging.adapter.ModuleBubble
    # Sets the bubble module helper that can instantiate your bubble bag
    Bubble.Helper=com.sap.aii.messaging.adapter.ModuleBubbleHelperXMBWSImpl
    ###### Part 0 (FromWS and ToWS) : common part ######
    # Keeps the XMB headers in web service messages
    XMBWS.KeepHeaders=false
    # Encodes the xmb headers into a special HTTP header string x-xmb_ws_encoded
    XMBWS.UseEncoded=false
    # The target URL for the web service, to which the adapter sends web service messages.
    # The address is part of the WSDL
    XMBWS.TargetURL=http://www.extensio.com:8080/ExtensioInfoServer/servlet/rpcrouter
    # Proxy configuration from SAP
    XMBWS.proxyHost=PrOxY
    XMBWS.proxyPort=8080
    # The port and path where the adapter waits for XMB messages from clients.
    XMBWS.XMBPort=8400
    XMBWS.XMBPath=/soap/stockquote
    # The default SOAPAction HTTP request header to the web Service server
    # The SoapAction is part of the WSDL
    XMBWS.DefaultSOAPAction=
    Of course you have to set URL, proxy and SOAP-action to your belongings.
    You define the endpoint as:
    "http://<Adapter-Server>:<XMBPort><XMBPath>"
    in this example:
    "http://localhost:8400/soap/stockquote"
    Stefan

  • How can I invoke the web service manually in websphere?

    Hi
    I've developed a webservice application using Rational Application Developer (RAD). I deployed it in a websphere 6.1 application server, using the administration console to import the war file that I had previously exported with RAD.
    My webservice application is listed in the "Enterprise Applications" section of websphere's administration console as started.
    My question is: how can I invoke the web service manually? Is there some kind of websphere generated webpage that I can use to call it manually?
    I tried http://<server:port>/<contextroot> and http://<server:port>/<contextroot>/<servicename> in a webbrowser, but it doesn't work. Is it possible to invoke the web service manually, or do I need to develop a client?
    Thanks in advance
    Pedro

    Hi Bo Wang,
        Go to the Portal -> System Administration -> System Configuration
                               -> Portal Content folder
                               -> Open Visual Composer folder
        There you can see the Webservice Systems you have created through VC.
    You can delete the unwanted system here.
    Regards,
    Shemim

  • Using SAML policy while invoking a web service

    I have to invoke a webservice which is secured using the policy wss10_saml_token_client_policy.
    In order to achieve the above i have creates a stub using JAX-WS and while invoking the web service I pass the policy as a SecurityFeature.Code snippet given below:
    SecurityPolicyFeature[] securityFeatures = new SecurityPolicyFeature[] { new SecurityPolicyFeature(
                        getValueFromPropertyFile("oracle/wss10_saml_token_client_policy"))};
    SomeStub stub =(UserManagementPortTypev1_0)SomeService.getPort("...","....",securityFeatures );
    Once deployed in weblogic and when i invoke the service, the soap request formed is correct. It creates for me the soap header with the correct security nodes. The header formed is like below:
    <S:Header>
    <work:WorkContext xmlns:work="http://oracle.com/weblogic/soap/workarea/">rO0ABXoAAAJDADBvcmFjbGUuZG1zLmNvbnRleHQuaW50ZXJuYWwud2xzLldMU0NvbnRleHRGYW1pbHkAAAFPAAAAKXdlYmxvZ2ljLndvcmthcmVhLlNlcmlhbGl6YWJsZVdvcmtDb250ZXh0AAABSaztAAVzcgAxd2VibG9naWMud29ya2FyZWEuU2VyaWFsaXphYmxlV29ya0NvbnRleHQkQ2Fycmllcv1CAh9z5wpPAwACWgAHbXV0YWJsZUwADHNlcmlhbGl6YWJsZXQAFkxqYXZhL2lvL1NlcmlhbGl6YWJsZTt4cHcEAAAAAXNyAEFvcmFjbGUuZG1zLmNvbnRleHQuaW50ZXJuYWwud2xzLldMU0NvbnRleHRGYW1pbHkkU2VyaWFsaXphYmxlSW1wbAAAAAAAAAAAAwABTAARbVdMU0NvbnRleHRGYW1pbHl0ADJMb3JhY2xlL2Rtcy9jb250ZXh0L2ludGVybmFsL3dscy9XTFNDb250ZXh0RmFtaWx5O3hwdykAJzEuMDAwMEl6T0lYQ0swam9PTE1pcDJpZTFEbUNMdjAwMDAwMjt2MHh3AQF4ACZ3ZWJsb2dpYy5kaWFnbm9zdGljcy5EaWFnbm9zdGljQ29udGV4dAAAAX8AAAAyd2VibG9naWMuZGlhZ25vc3RpY3MuY29udGV4dC5EaWFnbm9zdGljQ29udGV4dEltcGwAAAAiMDAwMEl6T0lYQ0swam9PTE1pcDJpZTFEbUNMdjAwMDAwMgAAAAAAAAAAAAAA</work:WorkContext>
    <wsse:Security S:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    <saml:Assertion AssertionID="SAML-L0r20MS5CV0y7B6zHnGX5w22" IssueInstant="2011-05-10T05:03:49Z" Issuer="www.oracle.com" MajorVersion="1" MinorVersion="1" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion">
    <saml:Conditions NotBefore="2011-05-10T05:03:49Z" NotOnOrAfter="2011-05-10T05:08:49Z"/>
    <saml:AuthenticationStatement AuthenticationInstant="2011-05-10T05:03:49Z" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password">
    <saml:Subject>
    *<saml:NameIdentifier Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">anonymous</saml:NameIdentifier>* <saml:SubjectConfirmation>
    <saml:ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:sender-vouches</saml:ConfirmationMethod>
    </saml:SubjectConfirmation>
    </saml:Subject>
    </saml:AuthenticationStatement>
    </saml:Assertion>
    </wsse:Security>
    </S:Header>
    The node NameIdentifier is supposed to be populated with the logged in user id, which will be picked up from JAAS principal.
    Now I am invoking the service hosted in weblogic from outside using JSON protocol, I do not have a portal ready to invoke the service.
    My question is, is there any way in which i can replicate/ simulate the JAAS principal such that the nameidentifier is populated even when invoked from outside. THis is a requirement from testing perspective.

    Hi,
    Thanx it is working now.
    BTW can you give me some urls with info of this kind of setting which i need to do for other kind of integarions in J2EE platform.Sorry if i am asking too much as i am a starter in this technology.

  • Invoking a web service not created using oracle web service lib

    Hi All,
    I have a need to invoke my web service from oracle sql command. My web service not created using oracle web service library, but it is created using axis c++ libraries. Is it possible to do so,
    Thanks in advance,
    Regards,
    Monica

    In order to call out from the database process, is SQL (or PL/SQL) you need to generate some client code, that understand the details about the specific of the service you want to invoke and can produce the correct SOAP request. Once this proxy is uploaded in the Database, you can use it.
    There is a set of Database Web services samples that should help you get started. You can also take a look at the developer's guide - see Developing a Web Service Client in the Database.
    Hope it answers your question.
    --eric                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Maybe you are looking for

  • Creating a Sales BOM in SAP CRM 7.0

    Hi All, How to create a Sales BOM in SAP CRM 7.0 system?  What is the transaction code for it ? I want to define a high level Package material in the BOM and 3-4 low level items in this BOM. What are the steps to achieve this ? We do not have ECC sys

  • ITunes problem support couldn't help me

    I need someone who really, really knows their stuff. I have a new MacBook Pro, OS 10.5.5, iTunes 8.0.2 and an iPhone 2G, 2.1. Within OS X, iTunes has stopped connecting to the store. I get the error "iTunes could not connect to the iTunes store. An u

  • Get Rect of a line of text in text member

    hello everyone I need to get the top left right and bottom coordinates in pixels around a line of text in the text member where the mouse clicks. I know how to get the right and left positions. But top and botton is difficult. Any ideas and workaroun

  • When firefox opens, it will not let me search, or check emails

    When I start Mozilla Firefox, it will not let me check my emails, I cannot search, or any other items.

  • Partitions all messed up

    I just got my first Mac..the MacBook Pro. I've always wanted one, but I needed to run Windows applications. So as soon as BootCamp I made the plunge..and I love it. However, after owning it for about a week, I've already managed to mess it up. I inst