BPEL to invoke a webservice secured by BASIC auth
Hi
I have been trying to write a simple BPEL process to invoke a remote webservice secured by basic authentication. I was able to build the BPEL process and then the composite application that I deployed successfully to glassfish, all within NetBeans IDE. As per the wiki notes: http://wiki.open-esb.java.net/Wiki.jsp?page=HTTPBasicAuthentication, I also added the Policy element to the wsdl for the service that I am trying to invoke as follows:
<wsdl:service name="PMSDatabase">
<wsdl:port name="PMSDatabaseSOAP11port_http" binding="ns2:PMSDatabaseSOAP11Binding">
<soap:address location="http://namadgi:9999/MessageCentre/services/PMSDatabase"/>
</wsdl:port>
<wsdl:port name="PMSDatabaseSOAP12port_http" binding="ns2:PMSDatabaseSOAP12Binding">
<soap12:address location="http://namadgi:9999/MessageCentre/services/PMSDatabase"/>
</wsdl:port>
<wsdl:port name="PMSDatabaseHttpport" binding="ns2:PMSDatabaseHttpBinding">
<http:address location="http://namadgi:9999/MessageCentre/services/PMSDatabase"/>
<wsp:PolicyReference URI="#HttpBasicAuthBindingBindingPolicy"/>
</wsdl:port>
</wsdl:service>
<wsp:Policy wsu:Id="HttpBasicAuthBindingBindingRealmPolicy">
<mysp:MustSupportBasicAuthentication on="true">
<mysp:BasicAuthenticationDetail>
<mysp:WssTokenCompare/>
</mysp:BasicAuthenticationDetail>
</mysp:MustSupportBasicAuthentication>
<mysp:UsernameToken mysp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:WssUsernameToken10>mcs_user</sp:WssUsernameToken10>
<sp:WssPassword>${pass_token}</sp:WssPassword>
</wsp:Policy>
</mysp:UsernameToken>
</wsp:Policy>When i try to run a testcase, the BPEL process fails during the invoke activity and I get the following error in the output:
<detailText>BPCOR-6135:A fault was not handled in the process scope; Fault Name is {http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling}systemFault; Fault Data is <?xml version="1.0" encoding="UTF-8"?><jbi:message xmlns:sxeh="http://www.sun.com/wsbpel/2.0/process/executable/SUNExtension/ErrorHandling" type="sxeh:faultMessage" version="1.0" xmlns:jbi="http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper"><jbi:part>HTTPBC-E00753: HTTP POST request failed, portType {http://service.messagecentre.dha.gov.au}PMSDatabaseHttpport
URL: http://namadgi:9999/MessageCentre/services/PMSDatabase/deletePMSVoidPeriod
QUERY:
PATH_INFO:
Exception detail: request requires HTTP authentication: User mcs_user not found in directory.</jbi:part></jbi:message>. Sending errors for the pending requests in the process scope before terminating the process instance
Caused by: BPCOR-6131:An Error status was received while doing an invoke (partnerLink=PartnerLink1, portType={http://service.messagecentre.dha.gov.au}PMSDatabasePortType, operation=deletePMSVoidPeriod)
BPCOR-6129:Line Number is 48
BPCOR-6130:Activity Name is Invoke1
Caused by: HTTPBC-E00753: HTTP POST request failed, portType {http://service.messagecentre.dha.gov.au}PMSDatabaseHttpport
URL: http://namadgi:9999/MessageCentre/services/PMSDatabase/deletePMSVoidPeriod
QUERY:
PATH_INFO:
Exception detail: request requires HTTP authentication: User mcs_user not found in directory.
Caused by: request requires HTTP authentication: User mcs_user not found in directory.</detailText>Where else do i need to configure the BASIC auth details to get this to work?
Please post your request to [email protected] for quick response.
Error states "mcs_user" is invalid user. Please make sure that the user is valid.
Similar Messages
-
BPEL to invoke Webservice secured with HTTP Basic authentication
Hi All,
Iam trying to call a Synchronous BPEL porcess from BPEL by passing HTTP basic authentication.I have done below steps to achieve this.
1) Created Target Synchronous process ex : B
2) Created Source Syncronous Process ex : A
Iam trying to call B(Target) from A(source).
3) Open Composite.xml of A(Source)
4) Right Click on External Refernce B(Target) parter link and click Configure WS policies
5) Under Security tab attach oracle/wss_username_token_client_policy
6) Login to em/console
7) Right click on A(Source) Composite and click Service/Refence Properties>>B(Target)
8) Enter username and password under HTTP Basic Authentication.
9)Test from em.console(when we are testing under security tab I have checked None radio button)
So this is the Error message which is throwing.
==================================
The selected operation process could not be invoked.
An exception occured while invoking the webservice operation. Please see logs for more details.
oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: SOAP must understand error:{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security, {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security.
java.lang.Exception: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: SOAP must understand error:{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security, {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security. at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:570) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:381) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:298) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.el.parser.AstValue.invoke(AstValue.java:157) at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283) at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53) at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1245) at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:87) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:298) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:91) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:87) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:87) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:298) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:91) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:81) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:673) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:273) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:165) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) 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.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420) at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:54) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:101) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:159) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:179) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:527) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3588) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) Caused by: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: SOAP must understand error:{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security, {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security. at oracle.sysman.emas.model.wsmgt.PortName.invokeOperation(PortName.java:712) at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:564) ... 68 more Caused by: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: SOAP must understand error:{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security, {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security. at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchUtil.java:260) at oracle.sysman.emSDK.webservices.wsdlparser.OperationInfoImpl.invokeWithDispatch(OperationInfoImpl.java:843) at oracle.sysman.emas.model.wsmgt.PortName.invokeOperation(PortName.java:664) ... 69 more Caused by: javax.xml.ws.soap.SOAPFaultException: SOAP must understand error:{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security, {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security. at oracle.j2ee.ws.client.jaxws.DispatchImpl.throwJAXWSSoapFaultException(DispatchImpl.java:874) at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:707) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(OracleDispatchImpl.java:226) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.invoke(OracleDispatchImpl.java:97) at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchUtil.java:256) ... 71 more
=======================================
Please let me know if Iam missing any steps.
Thanks
SSVFollowed this post.......
This is avery good question
in 11g i have taken out the steps from my document which i created for one our customer
go to composite
Right click on the external reference service and select “Configure WS policies” :done
Under the security tab, click add button and select “oracle/ wss_username_token_client_policy :done
6. Now Open the property Inspector window and click the add button under “Binding properties” tab. :done
7. Include the “oracle.webservices.auth.username--> :done
value-->password :done
8. Include the “oracle.webservices.auth.password”-->name :done
value-->password :done
Thanks
SSV -
Bpel- Error invoking Webservice
Hi
Getting error message while invoking a webservice from Bpel.
The service is deployed in local, hence have given the localhost in wsdl url.
http://localhost:8081/PASJava/ExposedComputation?wsdl
<messages>
<input>
<Invoke2_processExposedComputation_InputVariable>
<part name="parameters">
<processExposedComputation/>
</part>
</Invoke2_processExposedComputation_InputVariable>
</input>
<fault>
<bpelFault>
<faultType>0</faultType>
<remoteFault>
<part name="summary">
<summary>oracle.fabric.common.FabricInvocationException: Unable to access the following endpoint(s): http://localhost:8081/PASJava/ExposedComputation</summary>
</part>
<part name="detail">
<detail>Unable to access the following endpoint(s): http://localhost:8081/PASJava/ExposedComputation</detail>
</part>
<part name="code">
<code>null</code>
</part>
</remoteFault>
</bpelFault>
</fault>
<faultType>
<message>0</message>
</faultType>
</messages>
Pls suggest.The error message is :
<Error> <oracle.soa.bpel.engine.dispatch> <AdminServer> <orabpel.invoke.pool-4.thread-15> <<anonymous>> <> <1b8b91afeba98e17:-7d3b7bde:139e761e976:-8000-0000000000005636> <1348224359520> <BEA-000000> <failed to handle message
com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}remoteFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
parts: {{
summary=<summary>oracle.fabric.common.FabricInvocationException: Unable to access the following endpoint(s): http://localhost:8081/PASJava/ExposedComputation</summary>
,detail=<detail>Unable to access the following endpoint(s): http://localhost:8081/PASJava/ExposedComputation</detail>
,code=<code>null</code>}
at com.collaxa.cube.ws.WSInvocationManager.invoke(WSInvocationManager.java:338)
at com.collaxa.cube.engine.ext.common.InvokeHandler.__invoke(InvokeHandler.java:1059)
at com.collaxa.cube.engine.ext.common.InvokeHandler.handleNormalInvoke(InvokeHandler.java:586)
at com.collaxa.cube.engine.ext.common.InvokeHandler.handle(InvokeHandler.java:130)
at com.collaxa.cube.engine.ext.bpel.common.wmp.BPELInvokeWMP.__executeStatements(BPELInvokeWMP.java:74)
at com.collaxa.cube.engine.ext.bpel.common.wmp.BaseBPELActivityWMP.perform(BaseBPELActivityWMP.java:158)
at com.collaxa.cube.engine.CubeEngine.performActivity(CubeEngine.java:2543)
at com.collaxa.cube.engine.CubeEngine._handleWorkItem(CubeEngine.java:1165)
at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1071)
at com.collaxa.cube.engine.dispatch.message.instance.PerformMessageHandler.handleLocal(PerformMessageHandler.java:73)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleLocalMessage(DispatchHelper.java:220)
at com.collaxa.cube.engine.dispatch.DispatchHelper.sendMemory(DispatchHelper.java:328)
at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:4430)
at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEngine.java:4361)
at com.collaxa.cube.engine.CubeEngine._createAndInvoke(CubeEngine.java:698)
at com.collaxa.cube.engine.CubeEngine.createAndInvoke(CubeEngine.java:555)
at com.collaxa.cube.engine.delivery.DeliveryService.handleInvoke(DeliveryService.java:673)
at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.handleInvoke(CubeDeliveryBean.java:293)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at com.bea.core.repackaged.springframework.jee.intercept.MethodInvocationInvocationContext.proceed(MethodInvocationInvocationContext.java:104)
at oracle.security.jps.ee.ejb.JpsAbsInterceptor$1.run(JpsAbsInterceptor.java:94)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
at oracle.security.jps.ee.ejb.JpsAbsInterceptor.runJaasMode(JpsAbsInterceptor.java:81)
at oracle.security.jps.ee.ejb.JpsAbsInterceptor.intercept(JpsAbsInterceptor.java:112)
at oracle.security.jps.ee.ejb.JpsInterceptor.intercept(JpsInterceptor.java:105)
at sun.reflect.GeneratedMethodAccessor793.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
at com.bea.core.repackaged.springframework.jee.intercept.JeeInterceptorInterceptor.invoke(JeeInterceptorInterceptor.java:69)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy274.handleInvoke(Unknown Source)
at com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean_5k948i_ICubeDeliveryLocalBeanImpl.__WL_invoke(Unknown Source)
at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(SessionLocalMethodInvoker.java:39)
at com.collaxa.cube.engine.ejb.impl.bpel.BPELDeliveryBean_5k948i_ICubeDeliveryLocalBeanImpl.handleInvoke(Unknown Source)
at com.collaxa.cube.engine.dispatch.message.invoke.InvokeInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:35)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(DispatchHelper.java:140)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatchTask.java:88)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTask.java:64)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662) -
Need help !!! Regarding invoking Webservices with Basic Auth
I have a partner who requires me to pass credentials in order to invoke their Webservice.
I have created a Partner link using a local WSDL (copy of the original partner's WSDL) and assigned the following properties
<property name="HTTPbasicHeaders">credentials</property>
<property name="basicUsername">hilal.khan</property>
<property name="basicPassword">welcome123</property>
And invoked this partnerlink in a Synchronous BPEL process, the invocation fails with the following error message
<remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 401 Unauthorized</summary>
</part></remoteFault>
Looks like I am missing the way in which these credentials should be sent, I know for sure that the values being sent are correct - I tried to open the WSDL from a browser and it prompted me with a username/password window and I entered the same credentials and it then took me to the WSDL. Can one of you please help me figure out the issue and resolve it.Hi,
In BPEL.xml file that is built for bpel pass the binding with the httpUsername and httpPassword which you can make anything.
<partnerLinkBinding name="PartnerLink_SPTel_Register">
<property name="wsdlLocation">RegisterServiceRef.wsdl</property>
<property name="httpUsername">dummy</property>
<property name="httpPassword">dummy</property>
</partnerLinkBinding>
and in the BPEL process change the value of httpUsername and httpPassword dynamically to whatever you want.
<copy>
<from variable="httpUsername"/>
<to partnerLink="EventService_Partner" bpelx:property="httpUsername"/>
</copy>
<copy>
<from variable="httpPassword"/>
<to partnerLink="EventService_Partner" bpelx:property="httpPassword"/>
</copy>
This works great if you have to pass different credentials to the same WS depending on who accesses the bpel process.
hope this helps
Sandeep -
Error while invoking a WS-Security secured web service from Oracle BPEL..
Hi ,
We are facing some error while invoking a WS-Security secured web service from our BPEL Process on the windows platform(SOA 10.1.3.3.0).
For the BPEL process we are following the same steps as given in an AMIS blog : - [http://technology.amis.nl/blog/1607/how-to-call-a-ws-security-secured-web-service-from-oracle-bpel]
but sttill,after deploying it and passing values in it,we are getting the following error on the console :-
“Header [http://schemas.xmlsoap.org/ws/2004/08/addressing:Action] for ultimate recipient is required but not present in the message”
Any pointers in this regard will be highly appreciated.
Thanks,
SaurabhHi James,
Thanks for the quick reply.
We've tried to call that web service from an HTML designed in Visual Studios with the same username and password and its working fine.
But on the BPEL console, we are getting the error as mentioned.
Also if you can tell me how to set the user name and password in the header of the parter link.I could not find how to do it.
Thanks,
Saurabh -
Invoke BPEL process with the webservice interface
I'm using Oracle BPEL PM 10.1.2.x.
Follow the example comes with the BPEL PM, i can invoke the BPEL process in a J2EE project (with the webservice interface). The example named "UseStockReviewSheet".
Then i tried to invoke the BPEL process i designed with Eclipse BPEL Designer. The version of BPEL designer for Eclipse is 0.9.13.
I failed and got following errors:
09/03/17 16:55:53 com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.
xmlsoap.org/ws/2003/03/business-process/}selectionFailure}
messageType: {null}
parts: {{summary=<summary>变量/表达式结果为空.
尝试读取/复制第 50 行的 xpath 变量/表达式 "bpws:getVariableData('input','payload
','/tns:CreditFlowRequest/tns:input')" 时, 发现为空。.
请确保变量/表达式结果 "bpws:getVariableData('input','payload','/tns:CreditFlowRe
quest/tns:input')" 非空。.
</summary>}}
09/03/17 16:55:53 at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.checkEx
pressionFromValue(BPELAssignWMP.java:972)
09/03/17 16:55:53 at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.evalFro
mValue(BPELAssignWMP.java:504)
09/03/17 16:55:53 at com.collaxa.cube.engine.ext.wmp.BPELAssignWMP.__execu
teStatements(BPELAssignWMP.java:122)
09/03/17 16:55:53 at com.collaxa.cube.engine.ext.wmp.BPELActivityWMP.perfo
rm(BPELActivityWMP.java:188)
09/03/17 16:55:53 at com.collaxa.cube.engine.CubeEngine.performActivity(Cu
beEngine.java:3408)
09/03/17 16:55:53 at com.collaxa.cube.engine.CubeEngine.handleWorkItem(Cub
eEngine.java:1836)
09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.message.instance.Per
formMessageHandler.handleLocal(PerformMessageHandler.java:75)
09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.DispatchHelper.handl
eLocalMessage(DispatchHelper.java:166)
09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.DispatchHelper.sendM
emory(DispatchHelper.java:252)
09/03/17 16:55:53 at com.collaxa.cube.engine.CubeEngine.endRequest(CubeEng
ine.java:5438)
09/03/17 16:55:53 at com.collaxa.cube.engine.CubeEngine.createAndInvoke(Cu
beEngine.java:1217)
09/03/17 16:55:53 at com.collaxa.cube.engine.delivery.DeliveryService.hand
leInvoke(DeliveryService.java:511)
09/03/17 16:55:53 at com.collaxa.cube.engine.ejb.impl.CubeDeliveryBean.han
dleInvoke(CubeDeliveryBean.java:335)
09/03/17 16:55:53 at ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.
handleInvoke(ICubeDeliveryLocalBean_StatelessSessionBeanWrapper16.java:1796)
09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.message.invoke.Invok
eInstanceMessageHandler.handle(InvokeInstanceMessageHandler.java:37)
09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.DispatchHelper.handl
eMessage(DispatchHelper.java:125)
09/03/17 16:55:53 at com.collaxa.cube.engine.dispatch.BaseScheduledWorker.
process(BaseScheduledWorker.java:70)
09/03/17 16:55:53 at com.collaxa.cube.engine.ejb.impl.WorkerBean.onMessage
(WorkerBean.java:86)
09/03/17 16:55:53 at com.evermind.server.ejb.MessageDrivenBeanInvocation.r
un(MessageDrivenBeanInvocation.java:123)
09/03/17 16:55:53 at com.evermind.server.ejb.MessageDrivenHome.onMessage(M
essageDrivenHome.java:755)
09/03/17 16:55:53 at com.evermind.server.ejb.MessageDrivenHome.run(Message
DrivenHome.java:928)
09/03/17 16:55:53 at com.evermind.util.ReleasableResourcePooledExecutor$My
Worker.run(ReleasableResourcePooledExecutor.java:186)
09/03/17 16:55:53 at java.lang.Thread.run(Thread.java:534)
<2009-03-17 16:55:53,640> <ERROR> <default.collaxa.cube.xml> com.oracle.bpel.cli
ent.BPELFault: faultName: {{http://schemas.xmlsoap.org/ws/2003/03/business-proce
ss/}selectionFailure}
messageType: {null}
parts: {{summary=<summary>变量/表达式结果为空.
尝试读取/复制第 50 行的 xpath 变量/表达式 "bpws:getVariableData('input','payload
','/tns:CreditFlowRequest/tns:input')" 时, 发现为空。.
请确保变量/表达式结果 "bpws:getVariableData('input','payload','/tns:CreditFlowRe
quest/tns:input')" 非空。.
</summary>}}
I can invoke my BPEL process in BPEL console, not in J2EE project. bpws:getVariableData('input','payload','/tns:CreditFlowRequest/tns:input')" is null.
The error message contains some Chineses word. I'm new to BPEL, hope someone can give me a hint on how to solve this problem.
Thanks a billion!
--Sunny 2009-3-18Following is the java class invoking BPEL process with the webservice interface.
package com.otn.samples;
import javax.xml.namespace.QName;
import javax.xml.rpc.JAXRPCException;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.Service;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.encoding.XMLType;
import javax.xml.rpc.soap.SOAPFaultException;
import org.apache.axis.client.Call;
* @version 2.0 $Date: 07-mar-2005.05:07:45 $
* @author Copyright (c) 2004 by Oracle. All Rights Reserved.
public class CreditFlowClient
private static QName SERVICE_NAME;
private static QName PORT_TYPE;
private static QName OPERATION_NAME;
private static String SOAP_ACTION;
private static String STYLE;
private static String THIS_NAMESPACE = "http://samples.otn.com";
private static String PARAMETER_NAMESPACE = "http://samples.otn.com";
private String location;
static
SERVICE_NAME = new QName(THIS_NAMESPACE,"CreditFlow");
PORT_TYPE = new QName(THIS_NAMESPACE,"CreditFlow") ;
OPERATION_NAME = new QName(THIS_NAMESPACE,"creditFlowRequest");
SOAP_ACTION = "initiate";
STYLE = "wrapped";
public void setLocation(String location)
this.location = location;
public void initiate(String ssn)
try
/* Create Service and Call object */
ServiceFactory serviceFactory = ServiceFactory.newInstance();
Service service = serviceFactory.createService( SERVICE_NAME );
Call call = (Call)service.createCall( PORT_TYPE );
/* Set all of the stuff that would normally come from WSDL */
call.setTargetEndpointAddress( location );
call.setProperty(Call.SOAPACTION_USE_PROPERTY, Boolean.TRUE);
call.setProperty(Call.SOAPACTION_URI_PROPERTY, SOAP_ACTION);
call.setProperty( Call.OPERATION_STYLE_PROPERTY , STYLE );
call.setOperationName(OPERATION_NAME);
call.addParameter(new QName(PARAMETER_NAMESPACE,"ssn"), XMLType.XSD_STRING, ParameterMode.IN);
Object[] params = new Object[1];
params[0] = ssn;
/* Invoke the service */
call.invokeOneWay(params);
System.out.println( "CreditFlow BPEL process initiated" );
catch (SOAPFaultException e)
System.err.println("Generated fault: ");
System.out.println (" Fault Code = " + e.getFaultCode());
System.out.println (" Fault String = " + e.getFaultString());
catch (JAXRPCException e)
System.err.println("JAXRPC Exception: " + e.getMessage());
catch (ServiceException e)
System.err.println("Service Exception: " + e.getMessage());
public static void main(String[] args)
String ssn = "12-123-126";
String location = "http://localhost:9700/orabpel/default/CreditFlow";
CreditFlowClient client = new CreditFlowClient();
if(args.length == 1)
ssn = args[0];
else if(args.length ==2)
location = args[0];
ssn = args[1];
client.setLocation( location );
client.initiate( ssn );
------------------------------------------------------------------- -
BPEL not passing HTTP basic auth info
The BPEL control does not seem to pass the HTTP basic auth data correctly.
I placed the right credentials in the httpUsername and httpPassword properties for the partner link.
I patched SOA Suite to 10.1.3.3.1 to try to solve this problem. But it still comes up with the same result.
Any help would be greatly appreciated!Steps for invoking secure web services from BPEL================================================
Add following lines in target wsdl(webservice)
Add xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" in the namespaces section (ensure that "ns4" is not already being used!)
Add xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" in the "schema" element
Import the namespace http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd and provide a schemaLocation (physical file in the current directory)
Add the following in the "message" element for the input message type:
<s1:part name="secHeader" element="ns4:Security"/>
Add <s3:header message="__relevant_message_name__" part="secHeader" use="literal"/> within <input> element (<binding>..<operation>)
then in BPEL before invoke activity take one assign activity
in assain activity xml expression to securerity variable in target variable
<oas:Security xmlns:oas="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<oas:UsernameToken wsu:Id="UsernameToken-15799662" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<oas:Username>username</oas:Username>
<oas:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</oas:Password>
</oas:UsernameToken>
</oas:Security>
import xsds into local workspace
oasis-200401-wss-wssecurity-secext-1.0.xsd
oasis-200401-wss-wssecurity-utility-1.0.xsd
xml.xsd
xmldsig-core-schema.xsd -
Problems Invoking Ebiz Webservice from 11g FMW Serve
Hi All,
We need to invoke a Webservice deployed on Ebiz host from 11g FMW Server in our PIP.
I created a simple BPEL process to invoke Ebiz Webservice and deployed the bpel process on 11g Server.
While executing the bpel process Iam getting Null Pointer Exception from Ebiz Webservice.
After checking the logs of Ebiz it was understood that SOA Provider is unable to recognize wsa header tags in the soap message used to invoke Ebiz Webservice.
Error message from logs is "An error occurred for port: AppsWSProvider: oracle.webservices.provider.ProviderException: java.lang.NullPointerException."
Unexpected header encountered: NameImpl: [localName: To, prefix:wsa, uri:http://www.w3.org/2005/08/addressing]
oracle.apps.fnd.wf.ws.common.WSException: InvalidHeader: Unexpected header encountered.
at oracle.apps.fnd.wf.ws.common.SOAPUtils.extractHeaders(SOAPUtils.java:92)
at oracle.apps.fnd.wf.ws.server.AppsWSProvider.processMessage(AppsWSProvider.java:470)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:958)
at oracle.j2ee.ws.server.WebServiceProcessor$1.run(WebServiceProcessor.java:388)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:385)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:481)
at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:114)
at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:96)
at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:200)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:734)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:908)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:458)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:234)
at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:29)
at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:879)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:619)
11g FMW Server is automatically adding these WSA Header tags in the soap message to invoke Webservice deployed on Ebiz host.
Have anyone encountered similar kind of issue?
Regards,
Sunitha.MHi
Hope below URL will resolve your issue
URL: https://cn.forums.oracle.com/forums/thread.jspa?threadID=1099613
Regards,
Phanikanth -
Re: Problems Invoking Ebiz Webservice from 11g FMW Server
Hi All,
We need to invoke a Webservice deployed on Ebiz host from 11g FMW Server in our PIP.
I created a simple BPEL process to invoke Ebiz Webservice and deployed the bpel process on 11g Server.
While executing the bpel process Iam getting Null Pointer Exception from Ebiz Webservice.
After checking the logs of Ebiz it was understood that SOA Provider is unable to recognize wsa header tags in the soap message used to invoke Ebiz Webservice.
Error message from logs is "An error occurred for port: AppsWSProvider: oracle.webservices.provider.ProviderException: java.lang.NullPointerException."
Unexpected header encountered: NameImpl: [localName: To, prefix:wsa, uri:http://www.w3.org/2005/08/addressing]
oracle.apps.fnd.wf.ws.common.WSException: InvalidHeader: Unexpected header encountered.
at oracle.apps.fnd.wf.ws.common.SOAPUtils.extractHeaders(SOAPUtils.java:92)
at oracle.apps.fnd.wf.ws.server.AppsWSProvider.processMessage(AppsWSProvider.java:470)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:958)
at oracle.j2ee.ws.server.WebServiceProcessor$1.run(WebServiceProcessor.java:388)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:385)
at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:481)
at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:114)
at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:96)
at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:200)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:734)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)
at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:908)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:458)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)
at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:234)
at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:29)
at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:879)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:619)
11g FMW Server is automatically adding these WSA Header tags in the soap message to invoke Webservice deployed on Ebiz host.
Have anyone encountered similar kind of issue?
Regards,
Sunitha.MI'm using Weblogic 7.0.
You must use two jars:
- webserviceclient+ssl.jar, which you can find somewhere in the
weblogic distribution, and
- the jar containing the proxy classes, which is created by the
tool jwsCompile when you compile the webservice (edited with Workshop). For this
latter you may follow the instructions in
http://e-docs.bea.com/workshop/docs70/help/index.html#guide/
tutorial/tutFirstWebServiceIntro.html at step 8
Still, if you happen to understand what my problem is, hints for
me are really welcome. -
Invoking a webservice using WSIF Binding
Hi All,
I have few queries regarding usage of WSIF Binding in BPEL
My understanding was it is useful for calling Java Classes from BPEL Process.
Can I use WSIF Binding for invoking the webservice ?
Or the use of WSIF Binding is limited to invoking Java classes.
If we can invoke web service , Can you please let me know how to do it?
you can mail your replies to [email protected]
Any help will be immensely appreciated..
Regards,
BhanuFirst of all thanks to Jens and clemens.
From both of your replies, i learnt that we can call webservice from BPEL process using WSIF binding .
Can you provide me a bpel sample where we're using wsif binding for invoking web service?
I have one more doubt:
"WSIF java binding means, which was used to call java classes. WSIF soap binding used to call web services"
Is my understanding correct?
Can you explain a bit on WSIF Java binding?
Regards,
Bhanu -
Error during invokation of webservices: "error: unknown java type:"
hi,
I'm having issues with invoking a webservice from the "WebLogic Test Client". The webservice exposes the methods from a stateless session EJB and Weblogic Workshop was used to create the webservice controls
Weblogic version: 10.0 mp1
Pls. advise.
Error message ...
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header />
<env:Body>
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>error: unknown java type: com.margin.engine.entity.ClientSet</faultstring>
<detail>
<bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0">com.bea.xml.XmlRuntimeException: error: unknown java type: com.margin.engine.entity.ClientSet
at com.bea.staxb.runtime.internal.FailFastErrorHandler.add(FailFastErrorHandler.java:45)
at com.bea.staxb.runtime.internal.MarshalResult.addError(MarshalResult.java:265)
at com.bea.staxb.runtime.internal.AnyTypeRuntimeBindingType.determineActualRuntimeType(AnyTypeRuntimeBindingType.java:84)
at com.bea.staxb.runtime.internal.RuntimeBindingProperty.getActualRuntimeType(RuntimeBindingProperty.java:110)
at com.bea.staxb.runtime.internal.PushMarshalResult.walkRankOneSoapArray(PushMarshalResult.java:570)
at com.bea.staxb.runtime.internal.PushMarshalResult.walkSoapArray(PushMarshalResult.java:534)
at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:437)
at com.bea.staxb.runtime.internal.SoapArrayRuntimeBindingType.accept(SoapArrayRuntimeBindingType.java:59)
at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:192)
at com.bea.staxb.runtime.internal.PushMarshalResult.marshalTopType(PushMarshalResult.java:93)
at com.bea.staxb.runtime.internal.MarshallerImpl.marshalBindingType(MarshallerImpl.java:302)
at com.bea.staxb.runtime.internal.MarshallerImpl.marshalType(MarshallerImpl.java:435)
at weblogic.wsee.bind.runtime.internal.LiteralSerializerContext.marshalType(LiteralSerializerContext.java:70)
at weblogic.wsee.bind.runtime.internal.BaseSerializerContext.internalSerializeType(BaseSerializerContext.java:175)
at weblogic.wsee.bind.runtime.internal.BaseSerializerContext.serializeType(BaseSerializerContext.java:95)
at weblogic.wsee.codec.soap11.SoapEncoder.encodePart(SoapEncoder.java:284)
at weblogic.wsee.codec.soap11.SoapEncoder.encodeReturn(SoapEncoder.java:205)
at weblogic.wsee.codec.soap11.SoapEncoder.encodeParts(SoapEncoder.java:192)
at weblogic.wsee.codec.soap11.SoapEncoder.encode(SoapEncoder.java:119)
at weblogic.wsee.codec.soap11.SoapCodec.encode(SoapCodec.java:128)
at weblogic.wsee.ws.dispatch.server.CodecHandler.encode(CodecHandler.java:103)
at weblogic.wsee.ws.dispatch.server.CodecHandler.handleResponse(CodecHandler.java:50)
at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:236)
at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:220)
at weblogic.wsee.ws.dispatch.server.ServerDispatcher.callHandleResponse(ServerDispatcher.java:135)
at weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:108)
at weblogic.wsee.ws.WsSkel.invoke(WsSkel.java:80)
at weblogic.wsee.server.servlet.SoapProcessor.handlePost(SoapProcessor.java:66)
at weblogic.wsee.server.servlet.SoapProcessor.process(SoapProcessor.java:44)
at weblogic.wsee.server.servlet.BaseWSServlet$AuthorizedInvoke.run(BaseWSServlet.java:257)
at weblogic.wsee.server.servlet.BaseWSServlet.service(BaseWSServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:226)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:124)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3395)
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:2140)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2046)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1366)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:172)
</bea_fault:stacktrace>
</detail>
</env:Fault>
</env:Body>
</env:Envelope>Olivier, thank you so much
SOAMANAGER does not exist in my system (sp level 8), so node "/sap/bc/soap/rfc" should be active. Actually, it is active.
I think the problem is related to user rights/profiles.
I have tried to create another WS after assigning role SAP_BC_WEBSERVICE_ADMIN. The same error when trying to activate it, but now, I can see this WS in SE80 (under "Enterprise Services->Service Definition"). It is not active there and if I try to activate it, a success message appears indicating that user "is not authorized to use function netzwerkadministration". I cannot see any new services in SICF...
Probably the new entry in SICF will be created after activating WS in SE80...
Do u know what user profile should I add in order to properly activate the WS in SE80?
Thank you very much!
Vicente -
Unable to invoke ReadProject WebService on a HTTPS environment
Hi,
I have customized Ms Project Server 2010 to invoke PSI WebService in the checkin event handler.
The code works very well in a HTTP environment. However, it doesn't work in HTTPS environment. The following message is displayed on accessing the service in HTTPS environment
The server was unable
to process the request due to an internal error. For more information
about the error, either turn on IncludeExceptionDetailInFaults (either from
ServiceBehaviorAttribute or from the <serviceDebug> configuration
behavior) on the server in order to send the exception information back to the
client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK
documentation and inspect the server trace logs
I am unable to trace logs to find out the root cause of this issue. Any help in this regard will be appreciated.HTTP 401 means the server running on specified URL may have HTTP Basic Authentication enabled. Please cross-check whether this is the case and if yes then configure the same in composite. BTW, "01hw331924" seems to be a familiar host name. ;)
Regards,
Anuj -
Extracting webservice security headers
I want to extract the wsseheader (username, password) that came into the bpel process and pass it to a partner link. any idea how to do it ?
Hi,
If you want to pass incoming WS-Security credentials to a process, which you are invoking, you don't need to extract wsse headers.
You need to set the wsseHeaders partner link property to propagate. To set this property use the following steps:
1. double click on the partner link for the service you need to invoke.
2. Go to the Property tab, and click on create button.
3. Select wsseHeaders from the drop down menu.
4. Give propagate as property value.
5. save and deploy, the WS-Security credentials will automatically propagated to the process you are invoking.
If you still want to extract wsse header inside BPEL you need to do the following:
1. Import "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" for WS-Security elements.
2. Create a variable of type wsse:Security in your BPEL.
3. double click on the receive activity of your BPEL process and go to Adapters tab.
4. Choose the variable you have just created as header variable.
5. In an assign activity create two copy operations to extract user name and password.
5. To extract user name give the "/ns1:Security/ns1:UsernameToken/ns1:Username" in xpath expression.
6. To extract password give the "/ns1:Security/ns1:UsernameToken/ns1:Password " in xpath xpression.
I am assuming ns1 is the name space prefix for WS-security xml schema in you BPEL process.
Read my following posts for more details on how to manipulate soap headers in BPEL and how to pass security credentials from BPEL:
http://soa-howto.blogspot.com/2008/05/how-to-manipulate-soap-headers-in-bpel.html
http://soa-howto.blogspot.com/2008/04/invoking-ws-security-compliant-web.html
http://soa-howto.blogspot.com/2008/09/how-to-set-security-credentials.html
http://soa-howto.blogspot.com/2008/09/how-to-pass-security-credentials-from.html
Thanks,
Dharmendra
http://soa-howto.blogspot.com -
Invoking a webservice from a servlet
Hi,
I am able to invoke a webservice using a Standalone java program. I am using the below command to invoke the web service.
java com.javasrc.webservices.age.AgeServiceClient -lhttp://localhost:8080/axis/services/AgeService "Siva" 33
Now if I write the whole code in a method I am not able to retreive the values into the servlet. Can any please suggest me how to invoke a web service from a servlet/JSP. Please tell if there any sites for this.
Here is my Client code:
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.utils.Options;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
public class AgeServiceClient
public static void main(String [] args)
try
Options options = new Options(args);
String endpointURL = options.getURL();
String name;
Integer age;
args = options.getRemainingArgs();
if ((args == null) || (args.length < 2))
name = "NoName";
age = new Integer( 0 );
else
name = args[ 0 ];
age = new Integer( args[ 1 ] );
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
call.setOperationName( new QName("http://age.webservices.javasrc.com", "age") );
call.addParameter( "arg1", XMLType.XSD_STRING,ParameterMode.IN);
call.addParameter( "arg2", XMLType.XSD_INT, ParameterMode.IN);
call.setReturnType( org.apache.axis.encoding.XMLType.XSD_STRING);
String ret = (String) call.invoke( new Object[]{name,age});
System.out.println("Age result : " + ret);
catch (Exception e)
System.err.println(e.toString());
Thanks in advance
PrashanthThis is very simple maybe you don't have servlet experience.
Simply you create a servlet and put your client main method in another one (not static method) + importing jar of your client and other associated jar files in WEB_INF\lib folder of servlet.
check for helloworld servlet then you can implement servlet for your client. -
Getting issue while invoking a webservice.
Hi All
when i invoke a webservice which is located remotley using httpclient post method. I am getting the following error
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize.</faultstring>
Can anyone please help me out how to get out this exception. tried googling on this exception, but there is no luck.
import java.io.File;
import java.io.FileInputStream;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.InputStreamRequestEntity;
import org.apache.commons.httpclient.methods.PostMethod;
public class PostXML {
public static void main(String[] args) throws Exception {
// Get target URL
String strURL = "http://localhost/services/CmdLineInterface?wsdl";
// Get file to be posted
String strXMLFilename = "C:\\post.xml";
File input = new File(strXMLFilename);
// Prepare HTTP post
PostMethod post = new PostMethod(strURL);
// Request content will be retrieved directly
// from the input stream
// Per default, the request content needs to be buffered
// in order to determine its length.
// Request body buffering can be avoided when
// content length is explicitly specified
post.setRequestEntity(new InputStreamRequestEntity(
new FileInputStream(input), input.length()));
// Specify content type and encoding
// If content encoding is not explicitly specified
// ISO-8859-1 is assumed
post.setRequestHeader(
"Content-type", "text/xml; charset=ISO-8859-1");
// post.set
post.setRequestHeader("SOAPAction", "");
// Get HTTP client
HttpClient httpclient = new HttpClient();
// Execute request
try {
int result = httpclient.executeMethod(post);
// Display status code
System.out.println("Response status code: " + result);
// Display response
System.out.println("Response body: ");
System.out.println(post.getResponseBodyAsString());
}catch(Exception e)
e.printStackTrace();
}finally {
// Release current connection to the connection pool
// once you are done
post.releaseConnection();
the above is the code i am using for calling the webservice.
Anyone can you please help me on this.
Regards
RakeshHi
Thank you very much for replying back..
Here is my WSDL file i am using
This XML file does not appear to have any style information associated with it. The document tree is shown below.
<wsdl:definitions xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:test" xmlns:intf="urn:test" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:test">
<!--
WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)
-->
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:test">
<element name="in0" type="xsd:string"/>
<element name="processCmdLineRequestReturn" type="xsd:string"/>
</schema>
</wsdl:types>
<wsdl:message name="processCmdLineRequestResponse">
<wsdl:part element="intf:processCmdLineRequestReturn" name="processCmdLineRequestReturn"/>
</wsdl:message>
<wsdl:message name="processCmdLineRequestRequest">
<wsdl:part element="intf:in0" name="in0"/>
</wsdl:message>
<wsdl:portType name="CmdLineInterface">
<wsdl:operation name="processCmdLineRequest" parameterOrder="in0">
<wsdl:input message="intf:processCmdLineRequestRequest" name="processCmdLineRequestRequest"/>
<wsdl:output message="intf:processCmdLineRequestResponse" name="processCmdLineRequestResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CmdLineInterfaceSoapBinding" type="intf:CmdLineInterface">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="processCmdLineRequest">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="processCmdLineRequestRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="processCmdLineRequestResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CmdLineInterfaceService">
<wsdl:port binding="intf:CmdLineInterfaceSoapBinding" name="CmdLineInterface">
<wsdlsoap:address location="http://localhost:8080/test/services/CmdLineInterface"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Regards
Rakesh
Maybe you are looking for
-
Cant send email but can receive on Iphone 5
cant send email but can receive on Iphone 5 Says go to settings but all updated still says the same
-
How do i use ipod as flash drive?
I plugged my IPOD and opened iTunes. "Manually manage music and videos" is already checked, "Enable disk use" is also checked but greyed. However, IPOD does not appear in My Computer. I would uncheck "Manually manage music and videos" but if I do the
-
How track my ipod from the serial number
i need help i have the serial number
-
I just switched to a Mac and installed Photoshop Elements 13. I previously worked with many years with Photoshop Elements 6 on a PC where I used the contact sheet function -- with each's photo's caption included -- to print print a collection of 400+
-
Under MacintoshHD I have a folder called Previous Systems and inside that System I. It takes up 2GB of memory - can I ditch it without harm? Thanks Ron