Web Service call to BPM to call another Web Service - all synch
HI all,
I have a webservice call to GetDocument from external system. In BPM I like to call another ws (SearchDocument) to retrieve metadata, which I need to complete the first GetDocument webservice. All synch if possible.
Any idea how to achieve this with (or mayby without) BPM ??
Thanks for your reply. Can you elaborate on that a bit more ?
My first WS call is to get a document..but because I need to add some metadata in order to have a succesful call I need to call another WS first to the same system to get the required metadata. Then I need to use this metadata to complete the first - GetDocument- call....
Hope this clarifies the scenario...
Is it maybe possible to do this another way..in sequence..using response data to populate another ws call ??
all help appreciated !
cheers,
Similar Messages
-
Calling Oracle BPM Process Web Service from Oracle Service Bus
Hi
I am using Oracle Service Bus 10gR3.
I have developed simple BPM process through Oracle BPM studio 10.3.1.0.I then followed steps below
1. Create a Process.
2. Expose the Process as a Web Service.
3. Run the project. This starts the Process Execution Engine.
4. Create an ALSB External Resource of type Management Host.
5. Create a second ALSB External Resource for registration.
6. Register the End Point
Until this point everything is fine. Then I created one project through Oracle Service Bus console. Under that created WSDL, Proxy Service and Business Service Folders. I am using the web service created through BPM studio as teh Business Service in SB . I then created one proxy service to route the request to the Business Service.
Finally when I try to test the Proxy Service by launching test console, I get the
<con:fault xmlns:con="http://www.bea.com/wli/sb/context">
<con:errorCode>BEA-380001</con:errorCode>
<con:reason>INTERNAL SERVER ERROR</con:reason>
<con:location>
<con:node>RouteNode1</con:node>
<con:path>response-pipeline</con:path>
</con:location>
</con:fault>
I also tried to debug through "Oracle Workshop for WebLogic Version 10.3 " . But I am not getting enough details as to why this is failing.
Please help me . Thanks In advance.
Thanks
Nilay
Edited by: user8950019 on Feb 1, 2010 4:11 AMHi,
When im calling wsdl created when BPM exposed as webservice in SOAP-ui, i first hit the startSession
Request is:-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:exp="http://bea.com/albpm/ExpenseManagement/ExpenseReport">
<soapenv:Header/>
<soapenv:Body>
<exp:startSession>
<password>Employee</password>
<user>Employee</user>
</exp:startSession>
</soapenv:Body>
</soapenv:Envelope>
Response i Get is:-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:startSessionResponse xmlns:ns1="http://bea.com/albpm/ExpenseManagement/ExpenseReport">
<return>3782hecq1s85h</return>
</ns1:startSessionResponse>
</soapenv:Body>
</soapenv:Envelope
but when i put this sessionId in main request:-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:exp="http://bea.com/albpm/ExpenseManagement/ExpenseReport">
<soapenv:Header/>
<soapenv:Body>
<exp:expenseReport>
<sessionId>3782hecq1s85h</sessionId>
<reportArg>
<!--Optional:-->
<comments>yes</comments>
<!--Optional:-->
<costCenter>jaa</costCenter>
<!--Optional:-->
<description>aa</description>
<!--Optional:-->
<isApproved>y</isApproved>
<!--Zero or more repetitions:-->
<items>
<!--Optional:-->
<elements>
<!--Optional:-->
<amount>700</amount>
<!--Optional:-->
<date>?</date>
<!--Optional:-->
<description>?</description>
<!--Optional:-->
<receiptChecked>?</receiptChecked>
</elements>
</items>
<!--Optional:-->
<reviewedBy>?</reviewedBy>
<!--Optional:-->
<submitDate>?</submitDate>
<!--Optional:-->
<submittedBy>?</submittedBy>
<!--Optional:-->
<total>?</total>
</reportArg>
</exp:expenseReport>
</soapenv:Body>
</soapenv:Envelope>
Response coming is :-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server.userException</faultcode>
<faultstring>fuego.lang.ComponentExecutionException: The method 'expenseReport' from class 'xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl' could not be successfully executed.</faultstring>
<detail>
<ns1:stackTrace xmlns:ns1="http://xml.apache.org/axis/">fuego.lang.ComponentExecutionException: The method 'expenseReport' from class 'xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl' could not be successfully executed.
at fuego.lang.Invokeable.invokeImpl(Invokeable.java:244)
at fuego.lang.Invokeable.invokeDynamic(Invokeable.java:188)
at fuego.lang.Invokeable.invoke(Invokeable.java:160)
at fuego.soaptype.SoapListener.invokeDynamic(SoapListener.java:104)
at fuego.lang.Invokeable.invoke(Invokeable.java:160)
at fuego.fengine.FEngineWebServiceExecutor$2.execute(FEngineWebServiceExecutor.java:133)
at fuego.server.execution.DefaultEngineExecution$AtomicExecutionTA.runTransaction(DefaultEngineExecution.java:304)
at fuego.transaction.TransactionAction.startBaseTransaction(TransactionAction.java:470)
at fuego.transaction.TransactionAction.startTransaction(TransactionAction.java:551)
at fuego.transaction.TransactionAction.start(TransactionAction.java:212)
at fuego.server.execution.DefaultEngineExecution.executeImmediate(DefaultEngineExecution.java:123)
at fuego.server.execution.EngineExecution.executeImmediate(EngineExecution.java:66)
at fuego.fengine.FEngineWebServiceExecutor$1.run(FEngineWebServiceExecutor.java:65)
at fuego.component.Message.process(Message.java:576)
at fuego.component.ExecutionThread.processMessage(ExecutionThread.java:780)
at fuego.component.ExecutionThread.processBatch(ExecutionThread.java:755)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:142)
at fuego.component.ExecutionThread.doProcessBatch(ExecutionThread.java:134)
at fuego.fengine.FEngineProcessBean.processBatch(FEngineProcessBean.java:244)
at fuego.fengine.FEngineWebServiceExecutor$WebServiceExecutorPrincipal.processBatch(FEngineWebServiceExecutor.java:168)
at fuego.component.ExecutionThread.work(ExecutionThread.java:839)
at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
Caused by: java.lang.RuntimeException: java.lang.NumberFormatException: For input string: "jaa"
at xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl.expenseReport(ExpenseReportServiceInternalAlbpmListenerImpl.xcdl:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at fuego.lang.JavaClass.invokeMethod(JavaClass.java:1410)
at fuego.lang.JavaObject.invoke(JavaObject.java:227)
at fuego.lang.Invokeable.invokeImpl(Invokeable.java:234)
... 21 more
Caused by: java.lang.NumberFormatException: For input string: "jaa"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.valueOf(Unknown Source)
at fuego.util.Conversion.tojava_lang_Integer(Conversion.java:934)
at fuego.xobject.runtime.ConversionUtilities.fromString(ConversionUtilities.java:56)
at fuegoblock.xml.XmlElementDeserializer.deserializeElement(XmlElementDeserializer.java:175)
at fuegoblock.xml.XmlElementDeserializer.deserialize(XmlElementDeserializer.java:81)
at fuegoblock.xml.DynamicXml.createObjectFrom(DynamicXml.java:160)
at fuegoblock.xml.DynamicXml.createObjectFrom(DynamicXml.java:119)
at xobject.ExpenseReportWebServiceImpl.ExpenseReportServiceInternalAlbpmListenerImpl.expenseReport(ExpenseReportServiceInternalAlbpmListenerImpl.xcdl:17)
... 28 more</ns1:stackTrace>
<ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">D-113014550</ns2:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
can anyone explain why this error is coming.?
Edited by: user8937128 on May 19, 2010 6:58 AM -
Webdynpro call another web page
Hi experts,
can my webdynpro call another web page? I need that the webdynpro call a pop-up to another web page and when this page is closed a variable returns to webdynpro to process.
Is this possible?
Thanks in advance,
DavidHi,
I've found a popup tutorial to webpage and work's fine ... only the first side of my aplicaton.
I can open a separate web page using:
wdComponentAPI.getWindowManager().createExternalWindow("http://www.google.de","Google - Search for an email address",true).open();
in this class, the "createExternalWindow" method have a boolean parameter to indicate if the window is modal or not ....
I asign this page on a modal=true but I cannot receive from my webdynpro possible events or variables.
sniffff.
David -
Problem in completing the TASK when using Web Dynpro Java and BPM
Hi,
I am using Web Dynpro Java and BPM.
i see my Web Dynpro View when i run the process.
Just that the task is not completing.
when i click on the Web Dynpro button to signal the completion of the event, nothing happens.
i have appropriately created events in both Component controller and Interface Controller and used the same in creating the Task.
a method in Component controller fires the event and a button click in the view calls this method.
i have successfully completed Donka Dimitrova's "SAP Netweaver Business Process Management-End-to-End Process Implementation Sample " but when i tried my own with slight modifications, it is not working !!!
http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/d07f3e88-554f-2b10-3cbf-ab8afea51b9f
regards,
-Amol GuptaHi Amol,
The way you described the things, I dont see any problems. Just to make sure that you are triggering the right event that you mapped as completion event for the task, try to cross check once again and see if the correct event is getting triggered. Also try to put some messages for debugging to see till where the control goes.
Regards,
Arafat -
I can't seem to get a web app search form to work inside another web app detail page. Does anyone know if this is possible?
I can display a list of web app items; and the search form works on a standard page; but when I try to load it within another web app's detail page, I get an error: "page not found". This happens regarless of whether I put {module_searchresuts} on the same page as the form, or if I redirect results to another page.
Does anyone have any suggestions?Heya.. You currently can not do that within the detail view but it is possible to redirect the results to another page.
Simply replace this red portion:
action="/Default.aspx?SiteSearchID=50&PageID={module_oid}"
with:
ID=/results-page.html
...results-page.html being the page you want instead. -
Calling a Web Service in another Web Service using JDev10.1.3 and AS 10g
I am using JDeveloper 10.1.3.0.4.3673 and Oracle AS 10g 10.1.3 on Windows XP Professional Version 2002 service pack 2.
Has anyone called a web service in another web service? I have not researched this yet. I assume it is possible. I need to get this figured out asap.
My guess is that
1. For the web service which is going to be called in the other web service, you need to create client-side proxy to call the web service - create a static method to instantiate and call the service.
2. I would deploy this client-side proxy Stub which calls the web service along with the other web service which calls it to the Oracle AS 10g.
Is this right? Is there any documentation on this specific thing?Hi,
rhis kind of orchestration is what BPEL is made for.
http://www.oracle.com/technology/products/ias/bpel/index.html
Frank -
Role for calling a BPM-Web Service
Hi everybody,
which role is neccessary in order to call a BPM-Web Service? If i add the roles "BPM End User" and "Every User core Role" i can not call my Web Service. But by adding the Group "Administrators" it works.
Which role should i use?
regards,
SidCheck this
Need to start process without SAP_BPM_SuperAdmin
Anil -
Error calling web service from another web service
I get the following deployment error:
BUILD FAILED
/home/appgcelc/DS_028/Receive/XMLReceiveService/build.xml:170: Deploy error: Ope
ration failed with error:
Error compiling :/u10/app/gcelc/ora/appserver10131/j2ee/home/applications/XMLRe
ceiveService/ReceiveMessage: Error instantiating compiler: Webservice artifact g
eneration failed:java.lang.IllegalStateException: Service {http://ds.gcss.usmc.m
il/}compsvc for service-ref service/CompressService not found
Below is my web.xml fine...the service ref looks good! What's the issue???
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd"
version="2.5">
<servlet>
<description>Web Service DefaultDepPort</description>
<display-name>Web Service DefaultDepPort</display-name>
<servlet-name>DefaultDepPort</servlet-name>
<servlet-class>mil.usmc.gcss.DefaultDepImpl</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DefaultDepPort</servlet-name>
<url-pattern>DefaultDepPort</url-pattern>
</servlet-mapping>
<ejb-local-ref>
<ejb-ref-name>ejb/local/SessionFacade</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local>mil.usmc.gcss.SessionFacadeLocal</local>
</ejb-local-ref>
<service-ref>
<service-ref-name>service/CompressService</service-ref-name>
<service-interface>javax.xml.rpc.Service</service-interface>
<wsdl-file>WEB-INF/wsdl/compsvc.wsdl</wsdl-file>
<jaxrpc-mapping-file>WEB-INF/compsvc-java-wsdl-mapping.xml</jaxrpc-mapping-file>
<service-qname xmlns:service-qname_ns__="http://ds.gcss.usmc.mil/">service-qname_ns__:compsvc
</service-qname>
<port-component-ref>
<service-endpoint-interface>mil.usmc.gcss.CompressService</service-endpoint-interface>
</port-component-ref>
</service-ref>
<resource-env-ref>
<description>Data Source for error handling API</description>
<resource-env-ref-name>jdbc/xxmcDS</resource-env-ref-name>
<resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>
</web-app>Well questions related to Web Services have been answered here in past, please Search on SCN for links to it.
-
Error while calling ejb service call from BPM service
Hi,
We are using the Oracle 11.1.1.5.0
We are calling ejb service call from BPM service to update the data to Oracle database.
We are getting the below error when we executing the ejb service call from BPM Service.
<Error> <EJB> <BEA-010026> <Exception occurred du
ring commit of transaction Name=[EJB oracle.bpm.bpmn.engine.ejb.impl.BPMNDeliver
yBean.handleCallback(java.lang.String,java.lang.String,java.lang.String,int,bool
ean)],Xid=BEA1-45B91984D57960994897(30845116),Status=Rolled back. [Reason=javax.
transaction.xa.XAException: JDBC driver does not support XA, hence cannot be a p
articipant in two-phase commit. To force this participation, set the GlobalTrans
actionsProtocol attribute to LoggingLastResource (recommended) or EmulateTwoPhas
eCommit for the Data Source = EBSConnection],numRepliesOwedMe=0,numRepliesOwedOt
hers=0,seconds since begin=1,seconds left=60,XAServerResourceInfo[SOADataSource_
base_domain]=(ServerResourceInfo[SOADataSource_base_domain]=(state=rolledback,as
signed=soa_server1),xar=SOADataSource,re-Registered = false),XAServerResourceInf
o[ArCnTaskForms@EBSConnection@EBSConnection_base_domain]=(ServerResourceInfo[ArC
nTaskForms@EBSConnection@EBSConnection_base_domain]=(state=rolledback,assigned=s
oa_server1),xar=weblogic.jdbc.wrapper.JTSEmulateXAResourceImpl@fa5476,re-Registe
red = false),SCInfo[base_domain+soa_server1]=(state=rolledback),properties=({web
logic.jdbc.remote.EBSConnection=t3://192.168.10.114:8001, weblogic.transaction.n
ame=[EJB oracle.bpm.bpmn.engine.ejb.impl.BPMNDeliveryBean.handleCallback(java.la
ng.String,java.lang.String,java.lang.String,int,boolean)]}),local properties=({w
eblogic.jdbc.jta.SOADataSource=[ No XAConnection is attached to this TxInfo ]}),
OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=soa
server1+192.168.10.114:8001+basedomain+t3+, XAResources={eis/tibjms/Queue, eis
/activemq/Queue, WLStore_base_domain_BPMJMSFileStore, WLStore_base_domain__WLS_s
oa_server1, eis/fioranomq/Topic, eis/jbossmq/Queue, eis/Apps/Apps, eis/websphere
mq/Queue, eis/AQ/aqSample, WLStore_base_domain_SOAJMSFileStore, eis/aqjms/Queue,
WSATGatewayRM_soa_server1_base_domain, eis/sunmq/Queue, eis/pramati/Queue, SSCo
nnectionDS_base_domain, eis/tibjms/Topic, eis/tibjmsDirect/Queue, eis/wls/Queue,
eis/tibjmsDirect/Topic, EDNDataSource_base_domain, eis/wls/Topic, eis/aqjms/Top
ic, RL3TST_base_domain, ArCnTaskForms@EBSConnection@EBSConnection_base_domain, S
OADataSource_base_domain, WLStore_base_domain_UMSJMSFileStore_auto_2},NonXAResou
rces={})],CoordinatorURL=soa_server1+192.168.10.114:8001+base_domain+t3+): weblo
gic.transaction.RollbackException: Could not prepare resource 'ArCnTaskForms@EBS
Connection@EBSConnection_base_domain
JDBC driver does not support XA, hence cannot be a participant in two-phase comm
it. To force this participation, set the GlobalTransactionsProtocol attribute to
LoggingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source
= EBSConnection
at weblogic.transaction.internal.TransactionImpl.throwRollbackException(
TransactionImpl.java:1881)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(Se
rverTransactionImpl.java:345)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTran
sactionImpl.java:239)
at weblogic.ejb.container.internal.BaseLocalObject.postInvoke1(BaseLocal
Object.java:622)
at weblogic.ejb.container.internal.BaseLocalObject.__WL_postInvokeTxRetr
y(BaseLocalObject.java:455)
at weblogic.ejb.container.internal.SessionLocalMethodInvoker.invoke(Sess
ionLocalMethodInvoker.java:52)
at oracle.bpm.bpmn.engine.ejb.impl.BPMNDeliveryBean_of8dk6_ICubeDelivery
LocalBeanImpl.handleCallback(Unknown Source)
at com.collaxa.cube.engine.dispatch.message.instance.CallbackDeliveryMes
sageHandler.handle(CallbackDeliveryMessageHandler.java:47)
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(Dispatc
hHelper.java:140)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatc
hTask.java:88)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTas
k.java:64)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.transaction.xa.XAException: JDBC driver does not support XA, he
nce cannot be a participant in two-phase commit. To force this participation, se
t the GlobalTransactionsProtocol attribute to LoggingLastResource (recommended)
or EmulateTwoPhaseCommit for the Data Source = EBSConnection
at weblogic.jdbc.wrapper.JTSXAResourceImpl.prepare(JTSXAResourceImpl.jav
a:83)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
sourceInfo.java:1327)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
sourceInfo.java:513)
at weblogic.transaction.internal.ServerSCInfo$1.run(ServerSCInfo.java:36
8)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin
gWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
.>
<12 Oct, 2012 12:34:40 PM IST> <Error> <oracle.soa.bpel.engine.dispatch> <BEA-00
0000> <failed to handle message
javax.transaction.xa.XAException: JDBC driver does not support XA, hence cannot
be a participant in two-phase commit. To force this participation, set the Globa
lTransactionsProtocol attribute to LoggingLastResource (recommended) or EmulateT
woPhaseCommit for the Data Source = EBSConnection
at weblogic.jdbc.wrapper.JTSXAResourceImpl.prepare(JTSXAResourceImpl.jav
a:83)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
sourceInfo.java:1327)
at weblogic.transaction.internal.XAServerResourceInfo.prepare(XAServerRe
sourceInfo.java:513)
at weblogic.transaction.internal.ServerSCInfo$1.run(ServerSCInfo.java:36
8)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin
gWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
>
<12 Oct, 2012 12:34:40 PM IST> <Error> <oracle.soa.bpel.engine.dispatch> <BEA-00
0000> <Failed to handle dispatch message ... exception ORABPEL-05002
Message handle error.
error while attempting to process the message "com.collaxa.cube.engine.dispatch.
message.instance.CallbackDeliveryMessage"; the reported exception is: Error comm
itting transaction:; nested exception is: javax.transaction.xa.XAException: JDBC
driver does not support XA, hence cannot be a participant in two-phase commit.
To force this participation, set the GlobalTransactionsProtocol attribute to Log
gingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source = EB
SConnection
This error contained an exception thrown by the message handler.
Check the exception trace in the log (with logging level set to debug mode).
ORABPEL-05002
Message handle error.
error while attempting to process the message "com.collaxa.cube.engine.dispatch.
message.instance.CallbackDeliveryMessage"; the reported exception is: Error comm
itting transaction:; nested exception is: javax.transaction.xa.XAException: JDBC
driver does not support XA, hence cannot be a participant in two-phase commit.
To force this participation, set the GlobalTransactionsProtocol attribute to Log
gingLastResource (recommended) or EmulateTwoPhaseCommit for the Data Source = EB
SConnection
This error contained an exception thrown by the message handler.
Check the exception trace in the log (with logging level set to debug mode).
at com.collaxa.cube.engine.dispatch.DispatchHelper.handleMessage(Dispatc
hHelper.java:207)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.process(BaseDispatc
hTask.java:88)
at com.collaxa.cube.engine.dispatch.BaseDispatchTask.run(BaseDispatchTas
k.java:64)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:908)
at java.lang.Thread.run(Thread.java:662)
>
Could any body help on this issue.It is little bit urgent for us to resolve.
Thanks in advance.Thanks Sudipto Desmukh,
The link is helpful me to resolve this issue.
Thanks,
Narasimha E -
Web service handler could not registered/called in client web service
Hi Expert,
I have two web service ServiceA & ServiceB and both implemented in weblogic.
The ServiceA is SSL enable and protocol is https which is not published by me.
The ServieB is my web service(wls8.1) and act as client for ServiceA.
My problem is when i hit my service, its not able set the handler when it call ServiceA but it is invoking the service and giving application exception like authentication error.
My service file:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
import javax.xml.rpc.handler.HandlerInfo;
import javax.xml.rpc.handler.HandlerRegistry;
import javax.xml.rpc.handler.soap.SOAPMessageContext;
import weblogic.webservice.client.SSLAdapterFactory;
import weblogic.webservice.client.WLSSLAdapter;
public class HelloService {
String wsdl = "https://188.122.123.23/RemoetService?WSDL";
static {
SSLAdapterFactory factory = SSLAdapterFactory.getDefaultFactory();
WLSSLAdapter adapter = (WLSSLAdapter) factory.getSSLAdapter();
adapter.setTrustedCertificatesFile("D:\\lib\\certs\\cacerts");
factory.setDefaultAdapter(adapter);
System.setProperty("weblogic.xml.encryption.verbose","true");
System.setProperty("weblogic.xml.signature.verbose","true");
System.setProperty("weblogic.webservice.verbose","true");
public String sayHello(String user) {
RemoteService_Impl service = new RemoteService_Impl(wsdl);
RemotePortType port = service.getRemoteServicePort1();
String namespace = service.getServiceName()
.getNamespaceURI();
QName portName = new QName(namespace,
"RemoteServicePortType");
HandlerRegistry reg = service.getHandlerRegistry();
List handlerList = new ArrayList();
Map map = new HashMap();
map.put("Username", "user1");
map.put("Password", "pwd1");
HandlerInfo info = new HandlerInfo();
info.setHandlerClass(WSClientHandler .class);
info.setHandlerConfig(map);
handlerList.add(info);
reg.setHandlerChain(portName,(List)handlerList);
RemoteServiceResponse = port.callMe(name);
My Handler Class:
package com.test;
import java.util.Map;
import javax.xml.namespace.QName;
import javax.xml.rpc.handler.Handler;
import javax.xml.rpc.handler.HandlerInfo;
import javax.xml.rpc.handler.MessageContext;
import javax.xml.rpc.handler.soap.SOAPMessageContext;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPHeaderElement;
public class WSClientHandler implements Handler {
private HandlerInfo handlerInfo;
public WSClientAuthenticateHandler(){}
public void init(HandlerInfo hi) {
System.out.println("Handler init");
handlerInfo = hi;
public void destroy() {
System.out.println("Handler destroy method called");
handlerInfo = null;
public QName[] getHeaders() {
System.out.println("Handler Header method called");
try {
Map map = handlerInfo.getHandlerConfig();
QName[] headers = handlerInfo.getHeaders();
System.out.println(" Config :"+map);
for(int i=0;i<headers.length;i++) {
System.out.println(headers.getLocalPart()+" "+
headers[i].toString()+" "+headers[i].getNamespaceURI());
}catch(Exception e) {
e.printStackTrace();
return handlerInfo.getHeaders();
public boolean handleRequest(MessageContext mc) {
SOAPMessageContext smc = (SOAPMessageContext) mc;
System.out.println("Calling handler class.....................");
try {
SOAPEnvelope se = smc.getMessage().getSOAPPart().getEnvelope();
System.out.println("Calling handler class.....................");
SOAPHeader soapHeader = se.getHeader();
Name headerName = se.createName("Security","wsse","http://schemas.xmlsoap.org/ws/2002/07/secext");
SOAPHeaderElement headerElement = soapHeader.addHeaderElement(headerName);
SOAPElement element = headerElement.addChildElement(se.createName("UsernameToken", "wsse", "http://schemas.xmlsoap.org/ws/2002/07/secext"));
element.addChildElement(se.createName("Username", "wsse","http://schemas.xmlsoap.org/ws/2002/07/secext")).addTextNode("testuser");
element.addChildElement(se.createName("Password", "wsse","http://schemas.xmlsoap.org/ws/2002/07/secext")).addTextNode("testpwd");
System.out.println("Calling handler class.....................");
System.out.println("** Request: \n "+se.toString()+"\n");
}catch(SOAPException e) {
e.printStackTrace();
return true;
/** * Specifies that the SOAP response message be logged to a
* log file before the
* * message is sent back to the client application
* that invoked the Web service.
public boolean handleResponse(MessageContext mc) {
System.out.println("Handler Response method called");
SOAPMessageContext messageContext = (SOAPMessageContext) mc;
System.out.println("** Response: \n"+messageContext.getMessage().toString()+"\n");
return true;
/** * Specifies that a message be logged to the log file if a SOAP fault is
* * thrown by the Handler instance.
public boolean handleFault(MessageContext mc) {
SOAPMessageContext messageContext = (SOAPMessageContext) mc;
System.out.println("** Fault: \n"+messageContext.getMessage().toString()+"\n");
return true;
Please need help here.
Thanks in Advance,
ppsI have tested static client calling using handler simple above service and found the issues.
QName portName = new QName(namespace,
*"RemoteServicePortType");*
The above line code has created the issues,becuase in wsdl file ( given similar wsdl file).
<?xml version="1.0"; encoding="UTF-8"?>
<definitions name="HelloService"
targetNamespace="http://www.ecerami.com/wsdl/HelloService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.ecerami.com/wsdl/HelloService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<message name="SayHelloRequest">
<part name="firstName" type="xsd:string"/>
</message>
<message name="SayHelloResponse">
<part name="greeting" type="xsd:string"/>
</message>
<portType name="*RemoteServicePortType*">
<operation name="sayHello">
<input message="tns:SayHelloRequest"/>
<output message="tns:SayHelloResponse"/>
</operation>
</portType>
<binding name="Hello_Binding" type="tns:*RemoteServicePortType*">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="sayHello">
<soap:operation soapAction="sayHello"/>
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice"
use="encoded"/>
</input>
<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice"
use="encoded"/>
</output>
</operation>
</binding>
<service name="Hello_Service">
+<port binding="tns:Hello_Binding" name="*RemoteServicePortType1*">+
+<soap:address+
location="http://host1:8080/soap/servlet/rpcrouter"/>
+</port>+
+<port binding="tns:Hello_Binding" name="*RemoteServicePortType2*">+
+<soap:address+
location="http://host2:8080/soap/servlet/rpcrouter"/>
+</port>+
+<port binding="tns:Hello_Binding" name="*RemoteServicePortType3*">+
+<soap:address+
location="http://host3:8080/soap/servlet/rpcrouter"/>
+</port>+
+<port binding="tns:Hello_Binding" name="*RemoteServicePortType4*">+
+<soap:address+
location="http://host4:8080/soap/servlet/rpcrouter"/>
+</port>+
</service>
</definitions>
From the above WSDL, I have four port name (port binding="tns:Hello_Binding" name="*RemoteServicePortType1*) which is not matching with PortType (portType name="*RemoteServicePortType*")
even i have iterated from getPorts() method and used to invoke the service.But handler was not calling when i invoke.
Please guide me here how i specify correct portname which can call Handler class also.
Thanks in advance,
pps -
Calling an interface METHOD of another abap web dynpro application
Hi Experts,
Can u plz tell how we can Call an interface METHOD of another abap web dynpro application in main WD Component.
Thanks
MaheshHi ,,
Example ALV interface method calling GET_MODEL interface method
View attribute declaration : M_WD_ALV type IWCI_SALV_WD_TABLE
DATA lo_INTERFACECONTROLLER TYPE REF TO IWCI_SALV_WD_TABLE .
wd_this->M_WD_ALV = wd_this->wd_cpifc_alv( ). "ALV is the usage name
DATA lv_value TYPE ref to cl_salv_wd_config_table.
lv_value = wd_this->M_WD_ALV->get_model( ). " interface method calling in ALV component usage.....
Regards,
Devi -
Calling another web dynpro in a web dynpro programm
Hi experts,
I am new to web dynpro. And I am working on several web dynpro applications. I just want to know how to call another web dynpro within a web dynpro application. Don't use popups, I'd like the web dynpro work together in the same window just like a wizard.
Thanks a lot.
Guo Guo Qing
Edited by: guoqing guo on Dec 24, 2007 6:59 AMHi Guo,
Yes, you can achieve it by Component Usage. You can embed other component's Interface views into your own Windows. Check out the component Usage information in help.sap.com to get a clear idea of it.
Regards
Raja Sekhar -
How do we call smartforms in abap program or web services
how do we call smartforms in abap program or web services
How many types of smartforms are there?
points will be rewardedHi
See this sample program
Using the fun module smartform is called from the program
Calling SMARTFORMS from your ABAP program
REPORT ZSMARTFORM.
Calling SMARTFORMS from your ABAP program.
Collecting all the table data in your program, and pass once to SMARTFORMS
SMARTFORMS
Declare your table type in :-
Global Settings -> Form Interface
Global Definintions -> Global Data
Main Window -> Table -> DATA
http://sapr3.tripod.com
TABLES: MKPF.
DATA: FM_NAME TYPE RS38L_FNAM.
DATA: BEGIN OF INT_MKPF OCCURS 0.
INCLUDE STRUCTURE MKPF.
DATA: END OF INT_MKPF.
SELECT-OPTIONS S_MBLNR FOR MKPF-MBLNR MEMORY ID 001.
SELECT * FROM MKPF WHERE MBLNR IN S_MBLNR.
MOVE-CORRESPONDING MKPF TO INT_MKPF.
APPEND INT_MKPF.
ENDSELECT.
At the end of your program.
Passing data to SMARTFORMS
<b>call function 'SSF_FUNCTION_MODULE_NAME'
exporting
formname = 'ZSMARTFORM'</b>
VARIANT = ' '
DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
if sy-subrc <> 0.
WRITE: / 'ERROR 1'.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
call function <b>FM_NAME</b>
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
GS_MKPF = INT_MKPF
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
<b>Reward points for useful Answers</b>
Regards
Anji -
BPM process calling another BPM process synchronously
Hi,
When have a BPM (SCENARIO_1) that receives a request.
The BPM makes a SYNC call to another BPM (SCENARIO_2_SYNC_SEND). The second BPM should return the sync response to the first BPM. The second BPM has been implemented as a SYNC/ASYNC bridge. .........This scenario is NOT working.
We have independently tested the second BPM and can confirm that it works correctly and as expected when it is NOT called by another BPM.
design steps of BPM
1. BPM (SCENARIO_1)
start -> receive(async) - >send(sync - calls 2nd BPM) -> stop
2. BPM (SCENARIO_2_SYNC_SEND). (this BPM is invoked by first BPM (SCENARIO_1)
start ->receive(sync -open SA bridge) ->send(sync - calls webService) ->send(closes SA bridge)
Is SAP PI supports synchronous call from one BPM to another BPM???
rgds,
RDSHi Henrique,
we also done the BPM calling another BPM asynchronousl;y, which is working fine.
In this case, I designed BPM like follows (as initially mentioned)
1. BPM (SCENARIO_1)
start -> receive(async) - >send(sync - calls 2nd BPM) -> stop
Note : In 'send' step, I selected 'Create New Transaction'.......if I don't select this property then system dumping without invoking the second BPM, When I select this property the second BPM is invoked after the 1st BPM completes i.e it waits for CHECK_FOR_ASYNC_RESPONSE_TIMEOUT (default value 60 secs) to elapse. during this time an entry in the outbound queue (smq2) appears
2. BPM (SCENARIO_2_SYNC_SEND). (this BPM is invoked by first BPM (SCENARIO_1)
start ->receive(sync -open SA bridge) ->send(sync - calls webService) ->send(closes SA bridge)
how do we check whether it using more than one queue??
we have only looked at smq1 & smq2.
We see an entry in SMQ2 which stays there for the timeout period of the first BPM.
It seems as if the second bpm doesnt see it until the first BPM closes.
I might think this is appropriate behaviour to stop the engine processing the same message more than once which would explain the behaviour we are seeing. However this would mean PI would not support BPM synchronously calling BPM which is what we are trying to determine if it is supported.
We cant find any documentation saying this is possible and alot of documentation indicates workarounds.
Have you ever seen this scenario implemented.
<removed by moderator>
Hi supriya,
There is no problem in getting the response from webservice, the problem is the BPM which calls webservice itself invoked after the timeout of first BPM.
Edited by: Shankar Raju Devadoss on Aug 25, 2010 7:21 AM
Edited by: Shankar Raju Devadoss on Aug 25, 2010 7:32 AM
Edited by: Prateek Raj Srivastava on Aug 25, 2010 11:24 AM -
How to Call an ADF Bounded Task Flow Located in Another Web Application
Hi.
I'm working in JDev 11G TP3.
I've read the section from the 11G documentation on Working with Task Flow Activities,
specifically the section 15.5.3 on How to Call an ADF Bounded Task Flow Located in Another Web Application.
I've followed the instructions but still can not seem to call another task flow in another application correctly.
Can someone send a small example specifying how the (TaskFlow Reference) section
should be filled in, and just a general simple outline of process to set the whole process up.
ThanksYour EL for the remote-app-url needs to return something like this
"http://www.acme.com:80/myapp/faces/adf.task-flow"
where "http://www.acme.com:80/myapp/faces" is the root of the url you'd normally use to access the remote application.
I filed two bugs:
bug 6944247 to improve the documentation
bug 6944246 to fix the fact that you currently have to specify the 'adf.task-flow' part. You shouldn't need to do that. But doing so for now will get it to work.
Maybe you are looking for
-
Update VEKP-EXIDV2 during automatic HU creation from outbound delivery
Hi All, I need your suggestion / input on following scenario. When I create an outbound delivery and save it, an automatic Transfer Order is created and at the same time an HU is created for delivery. Now, I want to populate the field VEKP-EXIDV2 ( H
-
Macbook is not booting because cd is stuck in to it
I mistakenly put a dvd inside my macbook before booting. And i my MacBook is nit booting. plz suggest me any trick tio get rid off this.
-
Not displaying right in firefox
Hello my site www.polandafter1989.com is displaying ok in IE, but in firefox the whole layout has gone wrong. when I preview the site in dreamweaver in the firefox browser it looks ok - apart from the black borders - they're supposed to be grey like
-
Unable to create Import Declaration Prior to GR in GTS 10.1
Hello Experts need your help Unable to create Import Declaration Prior to GR in GTS 10.1 All Plug-In settings are in place All configurations in GTS are in place Till yesterday I was facing the issue of IBD not getting transferred to GTS. I was getti
-
On Business Intelligence Prompt
Hi All, This is very critical in this project. Could you please help me out. Problem: I have a report where one of the column is Fiscal Year. There is a Fiscal Year prompt where I am using "between" operator to select between 2006 and 2010 year. That