List Business Services Endpoints with WLST

Hi,
We're using OSB 11.1.1.3 and 11.1.1.6 in several environments.
We just need to use wlst scripting to keep track of all business services and their endpoint uri's automatically.
We tried using some old scripts but found out that they don't work on 11g installations:
We tried the following code:
connect('weblogic','oracle10','t3://soavm2:7001')
domainRuntime()
sessionName = "FindServicesSession" + str(System.currentTimeMillis())
sessionMBean = findService(SessionManagementMBean.NAME, SessionManagementMBean.TYPE)
sessionMBean.createSession(sessionName)
servConfMBean = findService(ServiceConfigurationMBean.NAME + "." + sessionName, ServiceConfigurationMBean.TYPE)
alsbCore = findService(ALSBConfigurationMBean.NAME, ALSBConfigurationMBean.TYPE)
allRefs=alsbCore.getRefs(Ref.DOMAIN)
for ref in allRefs:
typeId = ref.getTypeId()
if typeId == "BusinessService":
serviceDefinition = servConfMBean.getServiceDefinition(ref)
endpointConfigration = serviceDefinition.getEndpointConfig()
print endpointConfigration
We get a "AttributeError: 'NoneType' object has no attribute 'getServiceDefinition'" error. It seems that it is related to metalink note "How To Modify Service Configurations By OSB JMX API [ID 1431254.1]". However the code provided there is for java through jmx, does anybody has a working example of how to do that on wlst?
Thanks!

Hi Marc,
What i found is that we can get list of business services URIs by consulting SERVICE_URI_TABLE...
Here's a script that reads a parameter file (which can have multiple domains information) with connection info and then gets all services and prints a list of the service name and URI on a file for each domain...
# params.txt format:
# user,passwd,admin-url
# Ej:
# weblogic,weblogic1,t3://adminsoa:7001
# weblogic,weblogic100,t3//adminsoa2:7001
import wlstModule
from com.bea.wli.sb.management.configuration import SessionManagementMBean
from com.bea.wli.sb.management.configuration import ALSBConfigurationMBean
from com.bea.wli.sb.management.configuration import BusinessServiceConfigurationMBean
from com.bea.wli.sb.util import EnvValueTypes
from com.bea.wli.config import Ref
from com.bea.wli.sb.util import Refs
from xml.dom.minidom import parseString
f1 = open('/tmp/params.txt','r')
for line in f1:
spline=line.split(',')
usr=spline[0]
pwd=spline[1]
url=spline[2].replace("\n","")
try:
connect(usr,pwd,url)
domName=cmo.getName()
domainRuntime()
sessionMBean = findService(SessionManagementMBean.NAME,SessionManagementMBean.TYPE)
sessionName="WLSTSession"+ str(System.currentTimeMillis())
sessionMBean.createSession(sessionName)
alsbSession = findService(ALSBConfigurationMBean.NAME + "." + sessionName, ALSBConfigurationMBean.TYPE)
alsbCore = findService(ALSBConfigurationMBean.NAME, ALSBConfigurationMBean.TYPE)
allRefs=alsbCore.getRefs(Ref.DOMAIN)
fileName='/tmp/'+domName+'_'+url.replace('t3://','').replace(':','')+'_BServicesLista.csv'
f2 = open(fileName, 'w')
f2.write('Name'+','+'URL'+'\n')
for ref in allRefs:
typeId = ref.getTypeId()
if typeId == "BusinessService":
name=ref.getFullName()
uris=alsbSession.getEnvValue(ref, EnvValueTypes.SERVICE_URI_TABLE, None)
xml=parseString(uris.toString())
xmlTag = xml.getElementsByTagName('tran:URI')[0].toxml()
xmlData=xmlTag.replace('<tran:URI>','').replace('</tran:URI>','')
f2.write('\"'+name+'\"'+','+'\"'+xmlData+'\"'+'\n')
f2.close()
except Exception,e:
print "Error trying to connect to " + url + 'Error: ' + str(e)
f1.close()
disconnect()
It's been working for us so far...

Similar Messages

  • Editing proxy and business service security with WLST

    My customer wants to manage the OSB with WLST as much as possible. I'm wondering if it is possible to handle the security and policies on proxy and business service with WLST.
    Any ideas or links to documenation are welcome.
    Thanks!

    I think you can do this. Please refer - http://docs.oracle.com/cd/E14571_01/core.1111/e10043/wlstcmds.htm#CHDGHDFJ
    But not sure of how much flexibility you will get with WLST. I will recommend using OWSM that is specifically used for similar activities for the soa suite.
    Please refer - http://docs.oracle.com/cd/E21764_01/web.1111/e13713/owsm_appendix.htm & http://docs.oracle.com/cd/E21764_01/doc.1111/e15866/owsm.htm for more details.
    Thanks,
    Patrick

  • OracleServiceBus Business Service Endpoints user 9096491

    Question1:
    I am having 3 business service endpoint with 3 business specifications(WSDL's). But I do not want to create a business service for each business service endpoints. I am creating one business service with end point. how to change the existing business service endpoint according the business? if any way to pass the other endpoints to the existing business service please provide me the answer.
    Proxy----> BusinessService(3 endpoints)
    Questions2: If it achievable by using dynamic Routing means how?

    Use routing options to sepcify the endpoint at runtime of business service. However this would be possible only if all the three wsdls are same. http://docs.oracle.com/cd/E23943_01/dev.1111/e15866/ui_ref.htm#i1290930
    If you have 3 different wsdls and then you cam use dynamic routing, but in this case you wil have to create 3 business service.

  • OSB 11g - List business services with WLST

    Hi,
    We're using OSB 11.1.1.3 and 11.1.1.6 in several environments.
    We just need to use wlst scripting to keep track of all business services and their endpoint uri's automatically.
    We tried using some old scripts but found out that they don't work on 11g installations:
    We tried the following code:
    connect('weblogic','oracle10','t3://soavm2:7001')
    domainRuntime()
    sessionName = "FindServicesSession" + str(System.currentTimeMillis())
    sessionMBean = findService(SessionManagementMBean.NAME, SessionManagementMBean.TYPE)
    sessionMBean.createSession(sessionName)
    servConfMBean = findService(ServiceConfigurationMBean.NAME + "." + sessionName, ServiceConfigurationMBean.TYPE)
    alsbCore = findService(ALSBConfigurationMBean.NAME, ALSBConfigurationMBean.TYPE)
    allRefs=alsbCore.getRefs(Ref.DOMAIN)
    for ref in allRefs:
    typeId = ref.getTypeId()
    if typeId == "BusinessService":
    serviceDefinition = servConfMBean.getServiceDefinition(ref)
    endpointConfigration = serviceDefinition.getEndpointConfig()
    print endpointConfigration
    We get a "AttributeError: 'NoneType' object has no attribute 'getServiceDefinition'" error. It seems that it is related to metalink note "How To Modify Service Configurations By OSB JMX API [ID 1431254.1]". However the code provided there is for java through jmx, does anybody has a working example of how to do that on wlst?
    Thanks!
    p.d: already posted this question on wlst forum but got no answer...

    You may like to refer metalink note 1380705.1 and OSB java API (section "Using MBeans in a script")-
    http://docs.tpu.ru/docs/oracle/en/fmw/11.1.1.6.0/apirefs.1111/e15033/com/bea/wli/sb/management/configuration/SessionManagementMBean.html
    Regards,
    Anuj

  • Different number of Business service endpoint for prod/non prod env in OSB

    Hi,
    I have a scenario in my project. We have 2 managed servers in all non production environment and 4 servers in production environment.
    In non production environments, have added 2 end point uri in the business service. If we create customization file from this, it will have only 2 endpoint uri details.
    Now problem is how to get all 4 enpoint uri added for production environment. Dont know how if we try to add 2 uris in customization file will work fine or not. Also it will be very cumbersome as there are more than 100 business services.
    Tried with comma seperated urls, but load balancing is not happening. Same thing when cluster address is used.
    Any pointers on this will be helpful.
    Regards,
    Pravin
    Edited by: pravinkapile on Sep 29, 2009 9:39 PM

    Hi..
    There's several ways to do it.. What I prefer to do is to generate the customization files and have a seperate set for each environment. As you say hand modifying the customization files is a pain (and error prone), so I wrote a program to generate the customization files.. basically it runs against my local dev environment, creates an edit session, modifies the env values (these are held in a properties file (easier to maintain)), exports the customization files and sbconfig jars, then discards the edit session.
    I then use a wlst/jmx script to perform the imports and running the customization files, then after the customization is ran, then I have a section that modifies the business service with multiple endpoints to set them up to load balance/failover..
    this is the function in my utils script to set the load balancing/failover....
    #=======================================================================================
    # Routine to modify all Business Endpoints with multiple URI's to set the Loadbalancing
    # algorithm to Round-Robin -
    #   Input must be an editable instance of an ALSBConfigurationMBean.
    #=======================================================================================
    def configureMultipleBSEndpoints(domainService, alsbSession):
      try:
        # get the Service config MBean
        servConfMBean = getServiceConfigurationMBean(domainService, alsbSession.getSession())
        bsQuery = BusinessServiceQuery()
        bsRefs = alsbSession.getRefs(bsQuery)
        changesToCommit = cju.parseBoolString("false")
        for bsRef in bsRefs:
          modificationsMade = cju.parseBoolString("false")
          serviceDefinition = servConfMBean.getServiceDefinition(bsRef)
          endPointConfig = servConfMBean.getEndPointConfiguration(bsRef)
          if endPointConfig.getURIArray().__len__() > 1:       
            outBoundProps = endPointConfig.getOutboundProperties()
            if outBoundProps.getLoadBalancingAlgorithm() == LoadBalancingAlgorithmEnum.NONE:
              outBoundProps.setLoadBalancingAlgorithm(LoadBalancingAlgorithmEnum.ROUND_ROBIN)
              modificationsMade = cju.parseBoolString("true")
            if outBoundProps.getRetryApplicationErrors():
              outBoundProps.setRetryApplicationErrors(cju.parseBoolString("false"))
              modificationsMade = cju.parseBoolString("true")
            retryCount = endPointConfig.getURIArray().__len__() - 1
            if outBoundProps.getRetryCount() != retryCount:
              outBoundProps.setRetryCount(retryCount)
              modificationsMade = cju.parseBoolString("true")
            if outBoundProps.getRetryInterval() != 2:
              outBoundProps.setRetryInterval(2)
              modificationsMade = cju.parseBoolString("true")
            serviceOpsEntry = servConfMBean.getServiceOperations(bsRef)
            if cju.booleanToString(serviceOpsEntry.isTakingURIOfflineEnabled()) == "false":
              serviceOpsEntry.setTakingURIOfflineEnabled(cju.parseBoolString("true"))
              serviceOpsEntry.setDelayInterval(15);
              modificationsMade = cju.parseBoolString("true")
            if modificationsMade:
              print 'endpoint configuration modifications made to - ' + bsRef.getFullName()
              hmServiceOpEntries = HashMap()
              hmServiceOpEntries.put(bsRef, serviceOpsEntry)
              endPointConfig.setOutboundProperties(outBoundProps)
              serviceDefinition.setEndpointConfig(endPointConfig)
              servConfMBean.updateService(bsRef, serviceDefinition)
              servConfMBean.updateServiceOperations(hmServiceOpEntries)
              changesToCommit = cju.parseBoolString("true")
        return changesToCommit
      except:
        print "Unexpected error:", sys.exc_info()
        print 'Failed to Configure Business Service Multiple Endpoints LoadBalancing Algorithm '
        raise..Mark.

  • OSB problem posting 5MB body to a business service endpoint

    Hello,
    I have an https endpoint they results in a Broken pipe exception after running for about 10mins if I send a SOAP body greater than 5MB. If I send the same request to this endpoint using SOAPUI (no OSB involvement) it works fine and completes in <1min, it only fails through OSB. Also if the request is less than 5MB it works fine through OSB and again completes in <1min.
    I've tried calling a proxy service (through test console and SOAPUI) and the business service (through test console) and all fail with the same broken pipe exception. Below is the constant state of the thread during this 10min period.
    "[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=3 tid=0x02fa6400 nid=0x16 runnable [0xb19fd000..0xb19ffaf0]
    java.lang.Thread.State: RUNNABLE
         at java.net.SocketOutputStream.socketWrite0(Native Method)
         at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
         at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
         at com.certicom.io.OutputSSLIOStream.write(Unknown Source)
         at com.certicom.tls.record.WriteHandler.flushOutput(Unknown Source)
         at com.certicom.tls.record.WriteHandler.write(Unknown Source)
         at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source)
         at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
         - locked <0xe70af568> (a java.io.BufferedOutputStream)
         at weblogic.net.http.HttpOutputStream.write(HttpOutputStream.java:22)
         at weblogic.utils.io.UnsyncByteArrayOutputStream.writeTo(UnsyncByteArrayOutputStream.java:104)
         at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:162)
         - locked <0xcefd08f8> (a weblogic.net.http.SOAPHttpsURLConnection)
         at weblogic.net.http.HttpURLConnection.writeRequestForAsyncResponse(HttpURLConnection.java:492)
         at weblogic.net.http.AsyncResponseHandler.writeRequestAndRegister(AsyncResponseHandler.java:190)
         at weblogic.net.http.AsyncResponseHandler.writeRequestAndRegister(AsyncResponseHandler.java:152)
         at com.bea.wli.sb.transports.http.HttpOutboundMessageContext.send(HttpOutboundMessageContext.java:313)
         at com.bea.wli.sb.transports.http.HttpTransportProvider.sendMessageAsync(HttpTransportProvider.java:564)
         at sun.reflect.GeneratedMethodAccessor310.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.wli.sb.transports.Util$1.invoke(Util.java:82)
    I am running OSB 10.3.0 on SPARC Solaris using Sun JVM.
    Any ideas/suggestions?
    Many thanks,
    Mike.

    Hello,
    I've tried content streaming but it made no difference. Maybe I've misunderstood content streaming but I thought you use this when body variable in the pipeline pair of a proxy is too big to manipulate in memory. In my scenario this is not a problem (I can report on the body fine just before I route to the business service) the only issue occurs when I call the business service with a request greater than 5MB.
    I've already adjusted the WLS timeouts/message sizes as follows:
    Max Post Size = -1 (although I think this is only used for POST to WLS rather than the other way around)
    Max Message Size = 50000000
    JTA timeout = 60
    The only stack trace is for the broken pipe:
    ####<30-Mar-2010 08:35:57 o'clock BST> <Debug> <AlsbTransports> <int-app-04> <RSPCA_ESB_Server1> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1269934557943> <BEA-000000> <LoadBalanceFailoverListener.sendMessageToServiceAsync
    com.bea.wli.sb.transports.TransportException: Broken pipe
    at com.bea.wli.sb.transports.TransportException.newInstance(TransportException.java:195)
    at com.bea.wli.sb.transports.http.HttpOutboundMessageContext.send(HttpOutboundMessageContext.java:370)
    at com.bea.wli.sb.transports.http.HttpTransportProvider.sendMessageAsync(HttpTransportProvider.java:564)
    at sun.reflect.GeneratedMethodAccessor327.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.wli.sb.transports.Util$1.invoke(Util.java:82)
    at $Proxy60.sendMessageAsync(Unknown Source)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageAsync(LoadBalanceFailoverListener.java:148)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToServiceAsync(LoadBalanceFailoverListener.java:543)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToService(LoadBalanceFailoverListener.java:478)
    at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageToService(TransportManagerImpl.java:544)
    at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageAsync(TransportManagerImpl.java:422)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.doDispatch(PipelineContextImpl.java:583)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.dispatch(PipelineContextImpl.java:498)
    at stages.routing.runtime.RouteRuntimeStep.processMessage(RouteRuntimeStep.java:128)
    at com.bea.wli.sb.pipeline.StatisticUpdaterRuntimeStep.processMessage(StatisticUpdaterRuntimeStep.java:41)
    at com.bea.wli.sb.stages.StageMetadataImpl$WrapperRuntimeStep.processMessage(StageMetadataImpl.java:339)
    at com.bea.wli.sb.pipeline.RouteNode.doRequest(RouteNode.java:106)
    at com.bea.wli.sb.pipeline.Node.processMessage(Node.java:67)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:866)
    at com.bea.wli.sb.pipeline.Router.processMessage(Router.java:191)
    at com.bea.wli.sb.pipeline.MessageProcessor.processRequest(MessageProcessor.java:75)
    at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:508)
    at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:506)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
    at com.bea.wli.sb.pipeline.RouterManager.processMessage(RouterManager.java:505)
    at com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:371)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper$1.run(HttpTransportServlet.java:279)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper$1.run(HttpTransportServlet.java:277)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.securedInvoke(HttpTransportServlet.java:276)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.service(HttpTransportServlet.java:237)
    at com.bea.wli.sb.transports.http.HttpTransportServlet.service(HttpTransportServlet.java:133)
    at weblogic.servlet.FutureResponseServlet.service(FutureResponseServlet.java:24)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    java.net.SocketException: Broken pipe
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
    at com.certicom.io.OutputSSLIOStream.write(Unknown Source)
    at com.certicom.tls.record.WriteHandler.flushOutput(Unknown Source)
    at com.certicom.tls.record.WriteHandler.write(Unknown Source)
    at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source)
    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
    at weblogic.net.http.HttpOutputStream.write(HttpOutputStream.java:22)
    at weblogic.utils.io.UnsyncByteArrayOutputStream.writeTo(UnsyncByteArrayOutputStream.java:104)
    at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:162)
    at weblogic.net.http.HttpURLConnection.writeRequestForAsyncResponse(HttpURLConnection.java:492)
    at weblogic.net.http.AsyncResponseHandler.writeRequestAndRegister(AsyncResponseHandler.java:190)
    at weblogic.net.http.AsyncResponseHandler.writeRequestAndRegister(AsyncResponseHandler.java:152)
    at com.bea.wli.sb.transports.http.HttpOutboundMessageContext.send(HttpOutboundMessageContext.java:313)
    at com.bea.wli.sb.transports.http.HttpTransportProvider.sendMessageAsync(HttpTransportProvider.java:564)
    at sun.reflect.GeneratedMethodAccessor327.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.wli.sb.transports.Util$1.invoke(Util.java:82)
    at $Proxy60.sendMessageAsync(Unknown Source)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageAsync(LoadBalanceFailoverListener.java:148)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToServiceAsync(LoadBalanceFailoverListener.java:543)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToService(LoadBalanceFailoverListener.java:478)
    at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageToService(TransportManagerImpl.java:544)
    at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageAsync(TransportManagerImpl.java:422)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.doDispatch(PipelineContextImpl.java:583)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.dispatch(PipelineContextImpl.java:498)
    at stages.routing.runtime.RouteRuntimeStep.processMessage(RouteRuntimeStep.java:128)
    at com.bea.wli.sb.pipeline.StatisticUpdaterRuntimeStep.processMessage(StatisticUpdaterRuntimeStep.java:41)
    at com.bea.wli.sb.stages.StageMetadataImpl$WrapperRuntimeStep.processMessage(StageMetadataImpl.java:339)
    at com.bea.wli.sb.pipeline.RouteNode.doRequest(RouteNode.java:106)
    at com.bea.wli.sb.pipeline.Node.processMessage(Node.java:67)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:866)
    at com.bea.wli.sb.pipeline.Router.processMessage(Router.java:191)
    at com.bea.wli.sb.pipeline.MessageProcessor.processRequest(MessageProcessor.java:75)
    at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:508)
    at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:506)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
    at com.bea.wli.sb.pipeline.RouterManager.processMessage(RouterManager.java:505)
    at com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:371)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper$1.run(HttpTransportServlet.java:279)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper$1.run(HttpTransportServlet.java:277)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.securedInvoke(HttpTransportServlet.java:276)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.service(HttpTransportServlet.java:237)
    at com.bea.wli.sb.transports.http.HttpTransportServlet.service(HttpTransportServlet.java:133)
    at weblogic.servlet.FutureResponseServlet.service(FutureResponseServlet.java:24)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Thanks,
    Mike.

  • Oracle Service Bus - Business Service Endpoint URI - Dynamic

    Hi,
    I'm trying to find a way to avoid hard-coding the endpoint URI in a business service. The reason I need to achieve this is because for the different environments (development, testing, production, etc...) the URI will be different.
    I have spent the past 2 days searching the oracle forum and documentation but have come up with nothing. Is there a way to achieve this?
    Preferably, is there a way to store the endpoint URIs in a configuration/properties file which can be changed when needed?
    Any help is much appreciated!
    Best Regards,
    Adel Haider

    Hi Adel,
    Customization file will be the best solution for your problem. You may generate a environment specific customization file. To know more, please refer -
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/consolehelp/customization.html#wp1129087
    Simplest solution would be to generate a customization file and replace the existing URI's with the required one's using replace all option of textpad. Run this customization file at target environment, after importing the OSB configuration.
    Regards,
    Anuj

  • Use dynamic web services endpoints with eInsight

    Hi,
    I'm dealing with a small problem when integrating two multiple systems based on web services.
    The problem is that I�ve a WSDL that represents different web services endpoints and my Business Process have to look out the input information and access a different web service endpoint corresponding to the input code. I only want to be able to change the endpoint of the web service or change the server that is called. However I don't know how can do it or if I can.
    To explain more clearly I�ll give an example. Imagine a company with some stores. All the stores have a web service with the same WSDL (changing the endpoint). I want to be able to call the web service in different endpoints automatically, without having to import another WSDL and make changes on my Business Process.
    I hope someone can help me. Thank you in advance.

    I would prefer using a Sun's JAX-RPC implementation if you are using JBoss. USe JBossWS. There are many things you have to consider when developing a Web Services. You should probably research that first. If it is your first web service, probably you are better off using RPC style web services. The documents and samples are all available on SUN web site. Try those out. For deploying on JBoss you would require to configure some jboss specific deployment descriptors.

  • Equivalent of Report Business Service - DownloadReport with 8.1/BIP

    Hi,
    We are currently upgrading from Siebel 7.5.3 to Siebel 8.1.1.1, and with it are moving from Actuate to BI Publisher. In 7.5.3 I have workflows that use two methods belonging to the Report Business Service - ExecuteReport and DownloadReport. They allow me to run a report and automatically save it to a specific location. I need to be able to do the same with my BIP reports. I am setting up a workflow process to generate the report (using the RunBIPReport and GenerateBIPReport methods). There is no method to download my newly generated report, and I need to go to the My Reports screen and download the report manually. I really need to automate this process and I have reports running on a daily basis that are then automatically picked up and emailed to clients. If any knows of a workaround that would allow my reports to be downloaded to a specified location without any intervention I would be extremely grateful.
    Many thanks,
    Claire

    I looked a bit further into this white paper and the code behind it. There is at least one method argument (thankfully optional) incorrect. However, I have a wider concern on why they would discuss this as a way of replacing proposals without looking at non-scripting alternatives. I understand people may need a way to copy publisher documents as attachment (and may not want to use the undocumented FINS Industry BC methods) but for a typical "proposal replacement" the document would not need to be moved to the attachment objects it can remain in the Report Output BC.
    This can be done entirely in declarative alternatives. I chose to extend the Report Output BC to contain parent row id (why on earth this is missing in the first place is beyond me) and duplicated the applets so we have in other business objects such as Case a search spec for the parent row id = ParentFieldValue(Id). The Report Output List Applet was also replaced with a modified search spec to not show where parent row id is populated so people cannot delete "Case Reports". The production of the report is of course slightly quicker since the copy/paste to attachment is not needed.
    I cannot help but think Siebel came up short on this in the rush to get something out and I do appreciate the improvements in this release. I just hope, indeed expect, other developers to also look at other solutions and that the copy function is made available as hidden BS in a future release (as it is for FINS) but is an option rather than the basis. Give us the parent row id in vanilla Siebel!

  • Business Services development with jDeveloper

    We are making use of the Business Services feature in JDE to expose business functions as web services, that's great and working.
    we have one problem with jDeveloper during development.
    we can create a new business service from OMW in JDE and invoke jDev from there, that's fine.
    then we can put codes in the project in jDev, that's fine.
    then we can publish the code as J2EE web service, that works as well.
    then if we restart jDeveloper after that, the J2EE web service doesn't work in the jDev embeded web server any more.
    we always have to delete the web service in the project and go through the same wizard steps to generate the web service again.
    it's very annoying when you have more than a handful of web services you want to expose.
    and if you use the WSDL in a client project to call this web service, you have to remember to give the web service the same name when re-generating otherwise you have to reimport the WSDL again on client side, it can be another huge pain if the client is Oracle BPEL.
    so my question is, why is this happening? is it some settings in jDev that we didn't set right? or is it a bug in jDEv and is there a work around?
    thanks in advanced!

    What error did you get?

  • Oracle Service Bus - Business Service Endpoint URI - Change at runtime

    Hi,
    Is there a way of changing/passing the endpoint URI to a Business Service at runtime? The reason for my question is that depending on the content of the message in a Proxy Service that calls this Business Service I may need to change the URI.
    Kind Regards,
    Adel

    Adel,
    Is there some use-case limitation that would stop us from using Dynamic routing ?
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/modelingmessageflow.html#wp1100135.
    DynamicRouting /Dynamic publish can be considered depending on the use-case.
    Other option is to use Routing options: Modify any or all of the following properties in the outbound request: URI, Quality of Service, Mode, Retry parameters, Message Priority.
    Manoj

  • Issue on OSB business service configuration with email transport

    Hi,
    I am trying to create a Business Service with email Transport configuration. While creation, I have selected ServiceType as MessagingService.Then in Message Type Configuration page have selected Request Message Type as Text and Response Message Type as None. Now in Transport Configuration page email option is not showing in protocol.It's only showing http , jms option there.
    While I tried the same in some other OSB installation environment I am able to find email option in Protocol.
    Any  idea what could be potential reason of it.How can I able to see email option in Protocol ?
    Regards,
    Subhra

    Hi,
    Please check the state of Email Transport Provider in the admin console it should be in the active state , and also Go to JMS Module --> jms resources and check dist_wlsb.internal.transport.task.queue.email_auto.
    its heath and assosiated member will be working fine.
    Regards
    Bharat

  • Replace E1- Adapter with Business Services

    Hello,
    We are using E1-adapter to communicate with web Methods ( like calling business function, table IO etc..), now we are planning to replace E1- adapter with Business Services. We are using tools 8.98.11 and Application Release E812.
    Question is , is it possbile to create a wraper to call any business functions just like E1-adapter? Any help is greatly appriciated.
    Thank you.
    Edited by: user3448054 on Oct 12, 2009 1:09 PM

    Yes, you can use the JDE Business Service Server to simulate the E1-Adapter associated with webMethods. Oracle provides out of the box Business Services for a majority of the E1 transactions. We have implemented Business Services Server with our webMethods and it is working very well.
    -Eric

  • OSB: Invoking multiple endpoint URIs or business service at same time

    Hi All,
    I want to route the request to two end point URIs or business services using OSB.
    Say for example, I have a BPEL which is deployed in two servers. Using this solution I have to invoke the deployed service in both servers as soon as I receive input.
    Please help.
    Thanks in Advance

    yes you can.
    1. place URIs in a xml. Save XML as a xquery resource say URICollection.xquery.
    2. assign this URICollection.xquery to a variable say URICollectionVariable.
    3. extract desired URIs using a xquery from URICollectionVariable. Two URIs can be stored inside one parent element, which can be output as result.
    4. replace business service URI with desired URI (from result) using "Routing options".
    To propagate request to two different locations, you need to use "for each" action. Run the "for loop" exactly two times, write logic for above item no.4- inside the for loop action.

  • How do I build a dynamic business service URL in OSB 11g?

    Hello,
    I am used to using the business service endpoint URIs that we configure on the Transport tab of our business services in OSB 11.1.1.6.  We can add multiple static entries here for load balancing, and we can overwrite these with a Customization File as we migrate through DEV, TEST, PROD.  Everything's just fine there.
    I now need to start consuming RESTful services with dynamic URLs such as:
    http://host:port/customer/{customerId}
    that would result in HTTP calls to values like:
    http://host:port/customer/12345678
    and
    http://host:port/customer/55555555
    I see that I can build the URI using the Routing Options action in our proxy message flow and throw in all of those variable values at runtime.  This is working in DEV just fine.  And, effectively, I've overridden the business service endpoint URIs that we configured in the Transport.
    But now I want to:
    1) Use multiple endpoint URIs for our cluster
    2) Deploy to TEST
    What is the proper way to do this?  I would guess in the business service endpoint URIs in the customization file, but I don't know how to parameterize those.  I would also guess customization file find/replace functionality to change the host:port in my Routing Options action, but then that would still be just a single-node endpoint and not a pointer to multiple servers in our cluster.
    Can someone please advise the best way to configure these dynamic URLs at runtime while still allowing for clustered endpoints and for customization files to be applied as we promote through our environments?
    Thank you,
    Michael

    Found some old code.
    I think you need to do
    property_text = "#"^variable_text
    then you can do the following
    property_list[1][property_text]
    That seemed to work.

Maybe you are looking for