Exposing proxy service as a webservice using sb protocol

Hi everybody.
My team and I were working on an integration project between several applications. So we created all the OSB Projects needed to connect those applications and now I'm working on a web application that reads several logs that these integrations leave in the database in order to watch what happen when they are executed. Right now I need my web application to be able to reprocess or retry the messages that show some issue or are in an error state.
For this purpose we developed a proxy with an sb protocol which let us communicate with all the other proxy services dynamically just passing to it the proxy name, his operation and the body message. And finally here's my question for you guys.
How can I expose that last proxy (with the sb protocol) as a web service so I can consume it for the reprocess/retry action?
Thanks.

Dont think you need a Proxy service with SB protocol at all. From what I understand, your process will be like this:
1. Web app reads DB logs to see which records need to be resubmitted
2. Web App needs to invoke OSB to resubmit the message from log to correct proxy.
What you can do is create a WSDL based HTTP proxy in OSB for resubmission, Web application should call this HTTP proxy and pass the body, target service name (full path), target service type (Proxy or Business) and target Operation name(optional as messaging or Any XML type services wont have an operation associated). You can add a dynamic routing node in the HTTP proxy which will invoke the target proxy based on the request information received from Web App.
SB protocol only needs to be used in a Proxy service if you want to invoke a Proxy deployed on one OSB domain from another OSB domain or from Oracle SOA composites. Here the consumer will be the Web App, so it needs to be an HTTP proxy and not SB.
P.S.: You should also consider sending transport/custom headers as well and not just the body for your resubmission to be more reusable.

Similar Messages

  • OSB Exposing Proxy Service as Web Service to external consumers

    Hi all,
    I am trying to expose my proxy service which I have defined in OSB11g to be exposed to external applications and consumers, rather than listening to a queue or using a business service to receive the traffic. What would be the best approach and practice to this issue? Needless to say that since I mentioned this proxy needs to be exposed as web service, I'll be expecting back response. The endpoint that I am getting as result of creating this proxy comes to be in following format:
    /<project_name>/Services/ProxyServices/MyProxy
    This fine for apps deployed on the same domain, but not if they are not deployed on the same domain.
    thanks in advance

    From the information shared you, looks like you want to create a SOAP over HTTP webservice in OSB which will be the one exposed to external consumers.
    1. So to create such a Proxy service, you will need to define the interface using a WSDL (as mentioned by Pierluigi) first.
    2. Once done, you can create a Proxy (SOAP/HTTP) based using the above WSDL. Then implement your business logic in the message flow.
    3. As a part of the configuration, you can define the context root of the service. (by default you might be getting /<project_name>/Services/ProxyServices/MyProxy)
    You can customize as required, for e.x change this to /services/MyProxy
    4. The final URL that can be used to access the above proxy will be as follow:
    http://<hostname>:<port>/services/MyProxy for HTTP
    https://<hostname>:<port>/services/MyProxy for HTTPS accordingly.
    Depending on the way your domain is configured (managed servers) you can change the hostname and port.
    So irrespective of where this service is deployed, you should be able to access it.
    Do let me know in case my understanding is incorrect.
    Thanks,
    Patrick

  • Exposing WebServices Using EJB Module

    Hi,
    I am facing problems in exposing Web Services using EJB module. But the same is working fine when i am using webDynpro to expose the services.
    I am using the following code which gives error. 
                                                                     IUser user = UMFactory.getUserFactory().getUserByLogonID(userID);                                    UWLContext uwlContext = null;
                   IUWLService service = null;
                   uwlContext = new UWLContext();
                   service = UWLServiceHelper.findService();
                   uwlContext.setUser(user);
                   uwlContext.setLocale(user.getLocale());
    any suggestion how to go about it??
    Thanks
    Utsav

    Hello Utsav
    I see that you have not been able to find a solution for this.
    Can you provide some more information which may help the other SDN posters to assist you?
    Thanks
    Kenny

  • Creating Proxy service over a secured BPEL process

    Hi,
    I have a BPEL process project A which I have secured using oracle/wss_username_token_service_policy
    Now, I want to expose it over OSB as a proxy service.
    After registering the WSDL, I tried to create Business Service over it.
    It gave me a warning:
    [OSB Kernel:398133]WSSP 1.2 policy assertions (Web Services Security Policy 1.2) are not allowed on this service.
    What is the best approach to take.
    Thanks.

    Get the wsdl of the OSB proxy service and create webservice parnerlink in BPEL based on this wsdl to invoke the service
    To form the wsdl url, copy the Endpoint URI  configured to the proxy service(just click on the proxy service in the console) from the sbconsole  - /ATHGPUM_GlidePathService/ProxyService/ATHGPUM_GlidePathProxyService
    Pre append <<protocol://OSB Hostname:OSB Port>>  - http://localhost:8000/   and post append with ?WSDL
    The final WSDL url look like  - http://localhost:8000/ATHGPUM_GlidePathService/ProxyService/ATHGPUM_GlidePathProxyService?WSDL
    Regards
    Albin I

  • OSB-how to pass xml to another proxy Service

    Hi
    i am getting a xml as string after java call out and then i am using "fn-bea:inlinedXML($iso2xml_31)" for converting the string to XML,but when i am passing the inlinexml variable to another Proxy service by servicecallout i am not getting it.
    grateful if anyone can throw some light in this matter.
    thanks

    passing the inlinexml variable to another Proxy serviceMake sure the assign in the service callout is passing the right content to the other proxy service... Use OSB Test console to check the content of the variables...
    Cheers,
    Vlad

  • OSB Delete Entire Node (SOAP:header) in Proxy service

    Hi
    I am wanting to delete the SOAP:header node in the response in the SOAP proxy service.
    I am using the Delete action with the following settings
    Xpath: .
    In Variable: header
    All this is doing is deleting the contents of the "Header" node when I want to Delete the entire node.
    What am I doing wrong?
    Thanks in advance
    Edited by: cool.br33ze on 05-Feb-2013 01:40

    The reason for why I need to get rid of the SOAP:header is because the consuming application, SAP, is unable to handle a SOAP:header.If the consuming application is a SOAP client then there is no reason why it cannot handle it. If consuming application is not a SOAP client then better change the type of your proxy service to Any XML service or Messaging Type Service (with request and response type as XML)
    Regards,
    Anuj

  • Cannot create Proxy service with JCA transport

    Hello everyone.
    I have some issues while trying to create ftp service with jca transport. I follow the instruction in this tutorial:
    http://blogs.oracle.com/MarkSmith/entry/osb_and_ftp_adapter_in_11g
    I stuck in Step 4, cannot create proxy service to use JCA file that I created by JDeveloper 11g (11.1.1.5). When I specify jca file for proxy service, a error message returned:
    <ALSB Console> <BEA-494002> <Internal error occured in OSBConsole : Transport exception occurred with the following message:
    Invalid JCA file for JCA proxy service. If you are creating a Proxy from a Business Service, please select a different transport type (for example, http). If not, JCA file must contain JCA activation spec properties.And these are my jca file content that created by JDeveloper:
    <adapter-config name="myJCA_FTP_service" adapter="FTP Adapter" wsdlLocation="myJCA_FTP_service.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
      <connection-factory location="eis/ftp/MyFtpAdapter"/>
      <endpoint-interaction portType="Put_ptt" operation="Put">
        <interaction-spec className="oracle.tip.adapter.ftp.outbound.FTPInteractionSpec">
          <property name="PhysicalDirectory" value="/home/FTP-shared/upload"/>
          <property name="FileType" value="ascii"/>
          <property name="Append" value="false"/>
          <property name="FileNamingConvention" value="osb_%SEQ%"/>
          <property name="NumberMessages" value="1"/>
        </interaction-spec>
      </endpoint-interaction>
    </adapter-config>Is there anyone who had tried to use JCA transport with Ftp adapter already? Please give me a suggestion.
    Any response is appreciated
    Regards, Cuong Pham

    To get to the basics.
    You use GET to read files from an FTP location - This can be done by an OSB proxy service only.
    You use PUT to write files to an FTP location - This can be done by an OSB business service only.
    So forget that you need a proxy service for PUT.

  • How can we call a OSB proxy service from a BPEL process?

    Hi,
    I want to call a OSB proxy service from a BPEL process. Can you please explain me the procedure?

    Get the wsdl of the OSB proxy service and create webservice parnerlink in BPEL based on this wsdl to invoke the service
    To form the wsdl url, copy the Endpoint URI  configured to the proxy service(just click on the proxy service in the console) from the sbconsole  - /ATHGPUM_GlidePathService/ProxyService/ATHGPUM_GlidePathProxyService
    Pre append <<protocol://OSB Hostname:OSB Port>>  - http://localhost:8000/   and post append with ?WSDL
    The final WSDL url look like  - http://localhost:8000/ATHGPUM_GlidePathService/ProxyService/ATHGPUM_GlidePathProxyService?WSDL
    Regards
    Albin I

  • Add user to proxy service

    Hi, im developing an application to automate the security implementation of proxy services in Oracle Service Bus 10g, but i found this http://ohnoes-nz.blogspot.com.ar/2012/03/oracle-service-bus-using-wlst-to-secure.html to do that, thats works fine, but when i try to add a new user, the code it's deleting the previously users configured in the proxy service, i need to know if its possible to add a security policy user based without deleting the policies previously configured , or obtain the users that are configured int the proxy service
    the code im using:
    def applyTransportSecurityPolicy(serviceSecurityConfigurationMBean, authorizer, proxyReference, policy):
    policyHolder = serviceSecurityConfigurationMBean.newAccessControlPolicyHolderInstance(authorizer)
    policyHolder.setPolicyExpression(policy)
    policyScope = serviceSecurityConfigurationMBean.newTransportPolicyScope(proxyReference)
    serviceSecurityConfigurationMBean.setAccessControlPolicy(policyScope,policyHolder)
    thanks...
    regrads...

    I have seen other users as well complaining about the same issue "[Security:090398]Invalid Subject" frequently. You may check with Oracle Support for possible solution for your system version.
    Regards,
    Anuj

  • When to use Java Web Service from WSDL, Webservice proxy, Web Service DataControl -- JDeveloper 11.1.1.7

    Hi Experts!
    I am having confusion among these 3 services provided in Oracle ADF. When to use and what service needs to be used?
    Once we generate Webservice WSDL. With the WSDL we have 3  options in Jdeveloper to invoke this service.
    1. Java Web Service From WSDL.
    2. Web Service proxy,
    3. Web Service Data Control.
    Can anyone give us some brief description of these 3 services when do we need to use and which service is to be used for which scenario ?
    Please give me your valuable inputs.
    Thanks & Regards,
    Guravaiah Tata.

    Hi,
    Can you share your WSDL.
    You can send it to me at [email protected]
    -Vishal

  • How to use a file transport proxy service as trigger for a webservice

    Hi,
    I've implemented a alsb file transport proxy service. This proxy is watching a common directory and detects new files. After detection, the proxy move them in an archive folder.
    After that I want call an external webservice with the filename as input parameter.
    How can I comfigure that with the alsb console.
    best regards
    Oliver
    with the to extract the filename after it was renamed by the proxy service.

    How do you invoke/ instantiate the file based proxy service. Does it just run on activation in sb console? Does it continue to detect files or does it stop after detecting one file?
    Also what is the format of the URL that points to the file folder.
    For Ex: I have a folder named "TestFiles" on the C:\drive of the server.
    Edited by premkumr at 10/31/2007 3:26 PM

  • How to use "Routing Table" option in Proxy service in OSB ?

    Hi,
    I have created Business and Proxy services in my OSB console. I have used "Custom Query" option while creating the Database Adapter and I'm passing one input parameter to the query. My input parameter is "Name".
    Based on the input values for this parameter, I need to pass a corresponding values to the query. For example, If I pass the following values to "Name" input parameter (India) I need to pass "Value1" to my query -
    India --> Value1
    China --> Value2
    America --> Value3
    To achieve this requirement, I have used "Routing Table" option. I have specified the values as follows -
    Expression - $body/fet:FetchCustDataInput/fet:Name
    Operator- '='
    Compare value - India
    Service - "My Webservice"
    Operaton- "My Service Operation"
    In the "Request Actions:" I have added the "Add an Action --> Messaging Processing --> Replace" and provided the following values -
    Replace <XPath> = $body/fet:FetchCustDataInput/fet:Name
    in Variable = "Name"
    with Expression = xs:string('Value1')
    and selected "Replace node contents" option.
    No validation errors I faced. I have created the Routing table in Proxy service. But when I try to execute the proxy service in my Test Console, I get the following error message -
    "The invocation resulted in an error: Unknown error while processing message for service ProxyService OSBQueryService/FetchByCustomQuery/FetchByCustomQueryPS."
    I have even enabled "Direct call" and "Include Tracing" options as well. The message under "Tracing" give "(echoing request)
    Routed Service. No Service has been invoked, the request is echoed.".
    Can anyone please help me to resolve this issue.
    Thanks in Advance,
    Udaya

    Did you put any loggers in the proxy at request pipeline prior to route node ? Can you trace if the request has entered request pipeline aleast.
    If not just check the transport headers under the request window in the test console. There should be a text box for entering username/password which should be left blank. I have faced this unknown exception from test console in some browsers where an incorrect username/password used to get populated here. Check this ..
    Edited by: atheek1 on Jul 22, 2010 2:02 AM

  • Which service type to use for Proxy Service

    I have a question regarding a Proxy service.
    I have a need for a local (transport local) Proxy service which is called by another proxy service.
    It is a synchronous service which has an XML incoming message and an XML outgoing message.
    I have the following questions:
    - Does it make a difference in performance when I choose a WSDL webservice or a Messaging service?
    - Which one would you choose and why?
    Thanx

    Does it make a difference in performance when I choose a WSDL webservice or a Messaging service?Hardly there would be any difference.
    Which one would you choose and why?I would choose XML type messaging type proxy because input and output are XML messages. I won't choose WSDL web-service because it should be used in case of SOAP packagaing only (in web-service context, to enable SOAP and WS support) to mock a web-service which has a WSDL (and a XSD) associated with it.
    Regards,
    Anuj

  • How to call proxy service at enterprise service bus using flex

    Hi
    I have a proxy service located at wso2 enterprise service bus. How can i call that proxy service using flex?
    Regards
    Minal

    Hi Minal, I think you can communicate with wso2 using mx:HTTPService or mx:WebService, you just need to find out which services you'll be consuming and then create the flex app to present and interact with those services.

  • Issues invoking webservice hosted on Aqualogic Proxy service.

    Hi,
    This is my first "Hello world..." forum experience.
    I'm facing problems while invoking webservice hosted on Aqualogic Proxy Service in my local machine;
    I'm using Weblogic 10 (Oracle Service Bus 10gR3 ).
    1) I've used weblogic's "weblogic.wsee.tools.anttasks.ClientGenTask" to generate java code from wsdl file
    2) Created a stand-alone client
    code fragment :
    try{
    ServiceActivationNoticationService notificationService = new ServiceActivationNoticationService_Impl("http://localhost:7001/ServiceActivationInterface/FroxyServices/ServiceNotification".concat("?WSDL"));
    ServiceActivationNoticationPortType notificationServicePortType = notificationService.getServiceNotification();
    Empty response = ((ServiceActivationNoticationPortType_Stub)notificationServicePortType).serviceNotification(notification);
    catch(){
    System.err.println(ex.toString());
    logger.debug("Service Notification Exception...", ex);
    throw new Exception("Service Notification Exception...", ex);
    Comiling successfully but when I run I'm getting the follwing exceptions:
    Caused by: java.lang.NullPointerException
         at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType$ElementQNameProperty.access$000(ByNameRuntimeBindingType.java:314)
         at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.getMatchingElementProperty(ByNameRuntimeBindingType.java:253)
         at com.bea.staxb.runtime.internal.ByNameUnmarshaller.findMatchingElementProperty(ByNameUnmarshaller.java:71)
         at com.bea.staxb.runtime.internal.ByNameUnmarshaller.deserializeContents(ByNameUnmarshaller.java:43)
         at com.bea.staxb.runtime.internal.AttributeUnmarshaller.unmarshal(AttributeUnmarshaller.java:38)
         at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalBindingType(UnmarshalResult.java:174)
         at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalType(UnmarshalResult.java:212)
         at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalElement(UnmarshalResult.java:227)
         at com.bea.staxb.runtime.internal.UnmarshallerImpl.unmarshalElement(UnmarshallerImpl.java:166)
         at weblogic.wsee.bind.runtime.internal.LiteralDeserializerContext.unmarshalElement(LiteralDeserializerContext.java:87)
         at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.internalDeserializeElement(BaseDeserializerContext.java:180)
         at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.deserializeElement(BaseDeserializerContext.java:115)
         at weblogic.wsee.codec.soap11.SoapDecoder.decodePart(SoapDecoder.java:490)
         at weblogic.wsee.codec.soap11.SoapDecoder.decodeReturn(SoapDecoder.java:400)
         at weblogic.wsee.codec.soap11.SoapDecoder.decodeParts(SoapDecoder.java:170)
         at weblogic.wsee.codec.soap11.SoapDecoder.decode(SoapDecoder.java:121)
         at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:175)
         at weblogic.wsee.ws.dispatch.client.CodecHandler.decodeOutput(CodecHandler.java:126)
         at weblogic.wsee.ws.dispatch.client.CodecHandler.decode(CodecHandler.java:103)
         at weblogic.wsee.ws.dispatch.client.CodecHandler.handleResponse(CodecHandler.java:80)
         at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:236)
         at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:220)
         at weblogic.wsee.ws.dispatch.client.ClientDispatcher.handleResponse(ClientDispatcher.java:159)
         at weblogic.wsee.ws.dispatch.client.ClientDispatcher.dispatch(ClientDispatcher.java:114)
         at weblogic.wsee.ws.WsStub.invoke(WsStub.java:89)
         at weblogic.wsee.jaxrpc.StubImpl._invoke(StubImpl.java:331)
         ... 3 more
    But If I create a soap message manully and invoke the same webservice, it works fine.
    Please reply soon....
    Thanks in Advance.

    Hi James,
    Thanks for your reply, and directing me to appropriate threads.
    The problem is with one of wsdl element.
    My requirement is an empty element:
    so I've created
    <element name="empty">
    <xsd:complexType>
    <xsd:sequence/>
    </xsd:complexType>
    </element>
    when I use this element for output type as below...
    <wsdl:input message="service" type="xxx:service"/>
    <wsdl:output message="emptyResponse" type="xxx:empty"/>
    weblogic clientgen code is able invoke service successfully but the response is causing problem.
    But when I changed empty element to
    <element name="empty">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="abcd" type="xsd:string" minOccurs="0"/> I'll not use this at all.
    </xsd:sequence>
    </xsd:complexType>
    </element>
    Everything is working fine now in this case. ************************************************************************
    But I'm not sure what's wrong with
    <element name="empty">
    <xsd:complexType>
    <xsd:sequence/>
    </xsd:complexType>
    </element> because specifications says this is the way to define an empty element type.
    What's wrong with this....
    Thanks.... to Hello world! Response....

Maybe you are looking for

  • ESYU: PDOI를 이용하여 생성되지 않은 Blanket Purchase Agreements를 PDOI를 이용하여 update 할 수

    Symptoms Oracle Purchasing - Version: 11.5.10.2 Information in this document applies to any platform. PDOI에 의해 생성되지 않은 'Blanket Purchase Agreements'를 PDOI를 이용하여 update 할 수 있는 방법을 알아본다. Solution 이것은 Procurement family pack H나 그 이상의 version에서는 가능하다. Pr

  • How can i keep my contacts seperate from my wifes with ios5

    After installing ios5 the only way to add or edit contacts was to merge them on icloud now i have my son's and wifes's contacts on my devices because we all sync upmto the same pc with the same apple id. We would prefer to keep our conacts seperate.

  • INSTEAD OF TRIGGER (UPDATE): new.field null or not set

    When using an instead of trigger for an update on a view, you can "relate" the updates to the (another) base table(s). to perform the update statement you have the use the ":new.field" notation. Is there a way to determine if the field value is inclu

  • Process chain s linking problem ?

    HI ALL , i have a main chain , in which i have to include one  chain by using local process type . when i am linking it is giving message  that shows ,  " if u link them one of the process chain will be deleted and its process assigned to the other c

  • Texts in customer master

    hi gurus, can you please tell me where i can see the texts available in the customer master? i already assigned a text procedure to all account groups but i cant see them in customer master.. thanks, paul