OIM11gR2- Webservice based connectors
Hi Experts,
We are currently working on integration of OIM 11g R2 with an application where the record creation for application can be implemented through a webservice. Please provide us ideas how we can leverage webservice based connector to call our custom web API.
If we get the step by step implementation of the same, that will be very helpful.
Kind regards
the caller gets an error on the first request. from the second request on it works ... indicates the package is not yet recompiled when the first request is sent. When the second request is sent, the package has been recompiled.
Similar Messages
-
Any reference to Webservice based connector for OIM 11gR2
Hi All,
Please send any reference, document, link to web based connectors in OIM 11.2
thanks,If you are just looking for reference, then use:
http://docs.oracle.com/cd/E10391_01/doc.910/e10360/prdfnd_prov.htm#CHDGHCCG -
I have to integrate a webservice based resource with OIM 9.1.0.2 ,
I have to integrate a webservice based resource with OIM 9.1.0.2 , weblogic version 10.1.4.3
I have following details for that resource:
1) IP:
2) port :
3) Admin id:
4)password:
5) WSDL:
Please guide me in integrating the resource.Hi,
You can use the OOTB SPML GTC connector available in OIM, if you already have the target Webservice/WSDL available. -
Hi,
Has anybody implemented a webservices based adapter in OIM? If yes then can you please tell me what jars have to be copied to the 'ThirdParty' folder as I keep getting these errors when running the tasks.
08/01/28 13:14:25 Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy. You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy. You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.) (Caused by org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy. You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy. You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.))
08/01/28 13:14:25 at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
08/01/28 13:14:25 at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
08/01/28 13:14:25 at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:370)
08/01/28 13:14:25 at org.apache.axis.components.logger.LogFactory.getLog(LogFactory.java:37)
08/01/28 13:14:25 at org.apache.axis.handlers.BasicHandler.<clinit>(BasicHandler.java:43)
Thanks in advance,Hi
Are you trying to implement outgoing webservice or incoming webservice?
The error that you get is due to the fact that the logging service in OIM is based on Apache's Log4jLoggger. The webservice package (Apache Axis?) that you are using are also using the same logging mechanism. You probably have two jars containing slightly different versions of the same classes.
Try to find and remove the Axis variant of the logger and see if that resolves your conflict.
Your latest error message looks slightly strange as it would imply that the Apache logger implementation doesn't implement the Log method which sounds strange. Adding multiple versions of the same class can sometimes result in strange error messages so it might just be a red herring.
Good luck
/M -
Issues in parameter passing to DataControl(WebService based) method
Hi ,
Created a dataControl based on webservice ( Available via SOA composite containing mediator and business rule component ) . It needs a CustomerType as input and returns multiple parameter values.
Issue :- When I drag and drop the method available in datacontrol on a ADF Taskflow, it asks for a input parameter "request". I don't know how to pass that.
I have got a few examples from the google, and all of them takes the input parameter from UI and then drag and drop method as button. In my usecase, I need to process that while navigating from one jsff to other.
I could not find a link to upload a screenshot on this thread. So I am uploading it on another site and sharing the URL http://www.4shared.com/dir/ge4eAX6v/OracleFourm.html
Thanks,
RajdeepLet me try to expain the usecase again. I hope it will make requirement more clear.
DataControl stucture in DataControlPallete is given below. I have create one TestTaskflow.jspx , ViewCartTaskflow.xml and ViewCart.jsff page in my application. ViewCartTaskflow.xml has one parameter cartId as taskflow parameter. Requirement is simple to set the cartId and invoke the queryOperationMethod before page loads and then display the cart in the .jsff page.
So as per my understanding - queryOperationMethod will take #{bindings.request.currentRow.dataProvider} as input parameter. But how to set the cartId in that request object and then invoke the method before page loads.
ShoppingCartDC
|
|_queryOperationParameters
| |
| |_ request
| |
| |_ MessageHeader
| | |
| | |_MessageId
| |
| |_ DataArea
| |
| |_ cartId
|
|__ queryOperation
|
| _ Parameters
| |
| |_ request
|
|__ return
|
|_ShoppingCartObject ( further multiple fields in this object )
Thanks,
Rajdeep -
Error in calling webService based Entity
I'm using JD 11.1.1.5.0
in my application I've created an Entity based on a webService, It works fine when called through AM.
but when I'm trying to make a (.jsff) page out of the VO ,It gives the following error :
here is part of Log file :
<Proxy> <invoke>
java.lang.reflect.InvocationTargetException
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 oracle.jbo.client.svc.Proxy.invoke(Proxy.java:64)
at oracle.jbo.client.svc.ADFProxyInvocationHandler.invoke(ADFProxyInvocationHandler.java:54)
at $Proxy153.findProgramTaskVO1(Unknown Source)
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 oracle.jbo.client.svc.ServiceProxyInvocationHandler.invoke(ServiceProxyInvocationHandler.java:58)
at $Proxy154.findProgramTaskVO1(Unknown Source)
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 oracle.jbo.datasource.svc.SIVODataSourceImpl.retrieveData(SIVODataSourceImpl.java:88)
at oracle.jbo.server.DSViewObjectImpl.executeQueryForCollection(DSViewObjectImpl.java:127)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1183)
at oracle.jbo.server.ViewRowSetImpl.executeQueryForMasters(ViewRowSetImpl.java:1363)
at oracle.jbo.server.ViewRowSetImpl.executeQueryForMode(ViewRowSetImpl.java:1269)
at oracle.jbo.server.ViewRowSetImpl.executeQuery(ViewRowSetImpl.java:1254)
at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:6897)
at oracle.adf.model.bc4j.DCJboDataControl.executeIteratorBindingIfNeeded(DCJboDataControl.java:1387)
at oracle.adf.model.binding.DCIteratorBinding.executeQueryIfNeeded(DCIteratorBinding.java:2160)
at oracle.jbo.uicli.binding.JUCtrlHierBinding.getRootNodeBinding(JUCtrlHierBinding.java:92)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$HierCurrencyRowKeySet.getRowIterator(FacesCtrlHierBinding.java:1178)
at oracle.adfinternal.view.faces.model.binding.CurrencyRowKeySet.size(CurrencyRowKeySet.java:34)
at org.apache.myfaces.trinidad.model.RowKeySet.getSize(RowKeySet.java:152)
at oracle.adfinternal.view.faces.renderkit.rich.TableRendererUtils.writePojoSelectionState(TableRendererUtils.java:306)
at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.renderDataBlockRows(TableRenderer.java:1738)
at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer._renderSingleDataBlock(TableRenderer.java:1613)
at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer._handleDataFetch(TableRenderer.java:1015)
at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.encodeAll(TableRenderer.java:506)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:538)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
at oracle.adfinternal.view.faces.util.rich.InvokeOnComponentUtils$EncodeChildVisitCallback.visit(InvokeOnComponentUtils.java:113)
at org.apache.myfaces.trinidadinternal.context.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:222)
at org.apache.myfaces.trinidad.component.UIXIterator.visitTree(UIXIterator.java:251)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:326)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at oracle.adf.view.rich.component.rich.RichDocument.visitTree(RichDocument.java:198)
at org.apache.myfaces.trinidad.component.UIXComponent.visitTree(UIXComponent.java:443)
at oracle.adfinternal.view.faces.util.rich.InvokeOnComponentUtils.renderChild(InvokeOnComponentUtils.java:43)
at oracle.adfinternal.view.faces.streaming.StreamingDataManager._pprComponent(StreamingDataManager.java:756)
at oracle.adfinternal.view.faces.streaming.StreamingDataManager.execute(StreamingDataManager.java:525)
at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer._encodeStreamingResponse(DocumentRenderer.java:3488)
at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1458)
at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1396)
at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:335)
at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:767)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266)
at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)
at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:800)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:294)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:214)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
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:300)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
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.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
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.wrapRun(WebAppServletContext.java:3715)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: Exception [EclipseLink-45101] (Eclipse Persistence Services - 2.1.3.v20110304-r9073): org.eclipse.persistence.exceptions.SDOException
Exception Description: An error occurred attempting to return the requested SDOHelperContext. In an active WebLogic instance the application name is required for helper context cache lookups. The application name could not be determined because getExecuteThread could not be invoked reflectively on ThreadPoolRuntime.
Internal Exception: java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
at org.eclipse.persistence.exceptions.SDOException.errorInvokingWLSMethodReflectively(SDOException.java:126)
at org.eclipse.persistence.sdo.helper.SDOHelperContext.getExecuteThread(SDOHelperContext.java:721)
at org.eclipse.persistence.sdo.helper.SDOHelperContext.getContextMapKey(SDOHelperContext.java:625)
at org.eclipse.persistence.sdo.helper.SDOHelperContext.getMapKey(SDOHelperContext.java:583)
at org.eclipse.persistence.sdo.helper.SDOHelperContext.getAliasMap(SDOHelperContext.java:1160)
at org.eclipse.persistence.sdo.helper.SDOHelperContext.getHelperContext(SDOHelperContext.java:435)
at org.eclipse.persistence.sdo.SDOResolvable.readExternal(SDOResolvable.java:329)
at commonj.sdo.impl.ExternalizableDelegator.readExternal(ExternalizableDelegator.java:83)
at org.eclipse.persistence.sdo.SDOExternalizableDelegator.readExternal(SDOExternalizableDelegator.java:60)
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1791)The underlying error
Internal Exception: java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]points to a security related problem...
Timo -
Webservice based system test fails
Hello,
I have created a web service based system under portal content by using template. I have provided WSDL link and using Logon Method UIDPW. Additionally, I have also set the User Mapping. But still it fails the system test.
I want to avail the Webservice from an external ABAP system in the BPM application which runs in UWL-Portal.
Help?
Regards,
Naeemi have solved the issue.
-
Webservice based on PL/SQL function - ORA-04068
Hi,
we have a problem here with PL/SQL based webservices. If the PL/SQL package gets invalid then the very first request to the webservice results in:
java.sql.SQLException:
ORA-04068: existing state of packages has been discarded
ORA-04061: existing state of package "TUG_NEW.WBSERVICES" has been invalidated
ORA-04065: not executed, altered or dropped package "TUG_NEW.WBSERVICES"
ORA-06508: PL/SQL: could not find program unit being called ORA-06512: at line 1
Any workarounds? Shouldn't the package become recompiled automatically when it was invalid?
Thanks, Christianthe caller gets an error on the first request. from the second request on it works ... indicates the package is not yet recompiled when the first request is sent. When the second request is sent, the package has been recompiled.
-
Restful Webservice custom connector
Hi All,
I would like to know the best practice to create custom connector for Restful web service methods.Currently we are following simple java code which connects to service provider and pass the JSON object and perform the required actions.
Is it possible to develop this kind of connector using ICF, if yes what is the process need to follow Or is there any best way to achieve this.
I am currently trying to configure using ICF by following the example provided in learning library.
Thanks
ArunHi,
Follow below steps to create custom connectors:
1. Create IT Resource Definition -- which will be your connector class connection parameters
2. Create IT Resource - provide all connection parameter values
3. Create Resource Object
4. Create Process Form, add all required fields that are required for your target system.
5. Create process task adapter and call you java code to create user record in target system
6. Create Process definition (Provisioning Type), attach process form created above step and also check "default process"
7. Create unconditional task in process definition say "Create User" and map the adapter created in step 5.
These are high level steps, I hope u know how to create all above OIM metadata.
Regards,
Raghav. -
Transaction Handling in webservice based partnerlink
What is the transaction handling mechanism for parnerlink which calls webservice (not native BPEL/ESB)?
REgards
priyadarshiIt is SDO using I think
It should be not SOAP action, because it is not support transactions -
Setting up different webservices based on port number
I have several different web services set up on different port numbers, but would like to access them based on the sub domain instead of the port number.
for instance we have Rumpus ftp running on port 8000
webmail running on port 82
wiki running on port 80
at the moment they are accessed by our.domain-name.co.uk:port number
I have the following sub domains set up with our domain registrar which point to our server.
ftp
web
mail
how do I tie all this together so just typing ftp.domain-name.co.uk points to rumpus on port 8000Short answer, double-up.
The port number will take precedence, so if you have a virtual host listening on port 8000 then it's only going to process requests on that port. There's no way for it to process hits that come in on a different port.
You could configure the port 80 virtual host as a proxy to proxy the connection to the port 82/8000 server based on the hostname, but it would be easier (by far) to just setup another virtual host.
For example, you setup:
*:82 -> wiki
then you setup another virtual host:
web.domain-name.co.uk:80 -> wiki
Likewise you setup:
*:82 - > webmail
and
mail.domain-name.co.uk:80 -> webmail
In both cases you'd need to duplicate the site's configuration, which means more administration - if you make a change to your webmail setup you need to make it in both places.
The one gotcha is that IIRC Rumpus runs as its own server, not an Apache virtual host, so that may need to be setup as a proxy. -
Hi
I am new to oracle Apex. I saw oracle supports web service call. Can we have item level validation using web service on Apex?
Regards
AniOk,
What I want is, when user enter data in a text item it should call a webservice to validate the data entered by the user.
Eg. When a user enter a an airport code, apex should call a webservice that validate the airtport and display the airport name.
Hope it is clear now.
Regards
Anil -
WEBSERVICE based on REMOTE PROCEDURE
Hello everyone,
we are facing database freeze
and we suspect that it is linked with webservices using a remote procedure
In summary :
- we are using 2 different linux servers
- each server hosts a Sybase IQ 15.4 ESD4 base
- server 1 has a GET_APP_LOG procedure processing a SELECT on a local catalog-type table
- server 2 hosts a remote procedure linked to the GET_APP_LOG procedure of server 1
and an HTML webservice calling the remote procedure
Result :
The direct call of the remote procedure via dbisql on server 2 perfectly runs
but the call of the web service places the database 2 (and sometimes database 1) in a frozen state
- no more possibility to connect (timeout)
- no more activity into iqmsg file
- stop_iq is unable to stop the database : "Time alotted for server shutdown has expired..."
so the only way to stop the database is kill -9
With a SAODBC link, the phenomenon is systematic :
(CREATE SERVER xxx CLASS 'SAODBC' USING 'Driver=libodbc.so;CommLinks=tcpip(HOST=xxx;PORT=xxx);eng=xxx';)
With a ASE ODBC, it seems to run better
but in some cases, the database also freezes and we wonder if it's also due to webservice + remote procedure combination ...
Is there any recommendation or investigation to solve the problem ?...
Thanks
Patrick/people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi
have a look at the weblog ... it has a section on how to test the same. -
BPM : Procees the file based on the response of Webservice
Hi
I have a scenario where two files are the source..and the target is Webservice
Based upon the response of the first file ....i want to process the sencond file
if not i want to raise an exception...
whar are the steps i have to use in BPM..
SVSV,
Steps are mention below
1. 2 Receive Step - To recieve data from files also define corelation
2. Send Step - Call webservice
3. Switch Step - To check whether response is ok
4. If the condition true then process the second file.
5. If condition fails raise an exception message
Gaurav Jain -
Developing SOAP based Webservice using Axis 2 Eclipse plugin
Hi,
I want to develop a SOAP based Webservice which connects to the PostgreSQL DB , by fetching the data for the employeeId entered and display the results in the browser. I'm using using JDK 1.6, Tomcat 6.0, Axis 2.0 , with Axis 2 Eclipse Plugin. Please send me a sample code of how to build it, i am able find some examples on the internet, but none of them are related to connecting to the DB and fetching the data. It will be great if you guys can provide the sample application which does have the same functionality as mine. Please do respond as this is urgent. Thanks in advance..
Thanks,
RithuThanks Adhir Mehtaji, This is what i have come up with, developing a webservices based on SAAJ and deploying that in Tomcat server, here is the Webservice and the other related files:-
public class EmployeeService {
* This method returns the Employee Name
* @param empId String
public void getEmployeeName(SOAPEnvelope req, SOAPEnvelope resp) throws javax.xml.soap.SOAPException {
System.out.println("Inside the getEmployeeName in Employee Service");
IEmployeeDAO employeeDAO= null;
employeeDAO = new EmployeeDAOImpl();
SOAPBody body = resp.getBody();
String empId = null;
NodeList empIdNodeList = req.getBody().getElementsByTagName("empId");
for( int i=0; i < empIdNodeList.getLength(); i++ ) {
Element empIdElementElement = (Element) empIdNodeList.item(i);
Node empIdNode = empIdElementElement.getChildNodes().item(0);
empId = empIdNode.getNodeValue();
System.out.println("the empId in the employee service is:::"+empId);
addNode(body,"empName",employeeDAO.getEmployeeName(empId));
//addNode(body,"segmentName1",custSegmentDAO.getSegmentName(ZipCode));
private static void addNode(SOAPBody body,String nodeName,String nodeValue) throws SOAPException{
body.addChildElement(nodeName).addTextNode(nodeValue);
This Service is exposed as a Webservice which connects to the DAO and get the response for the EmpId.
This is the client file:-
public class GetEmployeeNameClient {
public static void main(String[] args) throws Exception {
// Invoking the Webservice endpoint which is hosted (deployed) in Tomcat by passing the SOAP Message request
// Get the SOAP Message response , which contains the employee name for the empId 100
// Parse the SOAP Message response to get the employee name (response from the WS)
String[] nodeNames = { "empId" };
String[] nodeValues = { "100" };
SOAPMessage message = GetEmployeeNameClient.getMessageFactory(
"getEmployeeName", nodeNames, nodeValues);
SOAPConnection conn = SOAPConnectionFactory.newInstance()
.createConnection();
SOAPMessage response = conn.call(message,
"http://localhost:8080/axis/services/EmployeeService");
// If the response is not null then everything is fine with the WS.
System.out.println("the response is what???"+response);
System.out.println("\n Soap response:\n");
System.out.println("\nXML response\n");
// Create transformer
TransformerFactory tff = TransformerFactory.newInstance();
Transformer tf = tff.newTransformer();
// Get reply content
Source sc = response.getSOAPPart().getContent();
// Set output transformation
StreamResult result = new StreamResult(System.out);
tf.transform(sc, result);
System.out.println();
// For these to work we need to connect to the DB - jdbc:oracle:thin:@ora-b2cd:6473:b2cd to get the segment name
SOAPBody soapBody = response.getSOAPBody();
System.out.println("the soapBody is what???"+soapBody);
NodeList empNameNodeList = soapBody.getElementsByTagName("empName");
System.out.println("the empNameNodeList.getLength is::"+empNameNodeList.getLength());
for (int i = 0; i < empNameNodeList.getLength(); i++) {
System.out.println("inside the loop");
Element empNameElement = (Element) empNameNodeList.item(i);
System.out.println("the empNameElement is what???"+empNameElement);
Node empNameNode = empNameElement.getChildNodes().item(0);
System.out.println("the empNameNode is what???"+empNameNode);
System.out.println("Employee Name For empId is ...... "
+ empNameNode.getNodeValue());
// Construct the SOAP Message request by passing the empId 100(should come from UI)
private static SOAPMessage getMessageFactory(String methodName,
String[] nodeNames, String[] nodeValues) throws SOAPException {
SOAPMessage message = null;
try {
System.out.println("Inside the getMessageFactory");
MessageFactory messageFactory = MessageFactory.newInstance();
message = messageFactory.createMessage();
SOAPPart soapPart = message.getSOAPPart();
SOAPEnvelope envelope = soapPart.getEnvelope();
SOAPBody body = envelope.getBody();
SOAPElement bodyElement = body.addChildElement(envelope
.createName(methodName));
for (int index = 0; index < nodeNames.length; index++) {
bodyElement.addChildElement(nodeNames[index]).addTextNode(
nodeValues[index]);
message.saveChanges();
// View input
System.out.println("\n Soap request:\n");
message.writeTo(System.out);
System.out.println();
} catch (Exception e) {
e.printStackTrace();
return message;
This client will send a SOAPMessage with EmpId (100) as a request and get the response from the Webservice as SOAPMessage , which
contains the empname for the respective empid which is passed.
I tested this service in the browser, it is up and running through the URL : http://localhost:8080/axis/services
But when i try to access the webservice to get the response from my client program, i am getting the following SOAP Fault string:-
<?xml version="1.0" encoding="UTF-8"?>
<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>
org.xml.sax.SAXNotRecognizedException: Feature: http://xml.org/sax/properties/lexical-handler
</faultstring>
<detail>
<ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">
user-15bbc0db6e
</ns1:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
My client path contains :-
axis.jar;
jaxrpc.jar;
saaj.jar;
commons-logging.jar;
commons-discovery.jar;
wsdlj4.jar;
axis-ant.jar;
log4j-1.2.4.jar
xerces.jar
activation.jar
mail.jar
Similary the in the d:/tomcat/webapps/axis/WEB-INF/lib,contains the same as that in client path.
I am using Tomcat 6.0 , JDK 1.6, I have googled and found that the expection is due to "Xerces.jar" not in Tomcat/webapps/axis/WEB-INF/lib.
I have copied xerces.jar in the said path, still the error persists. Please do provide a solution to this. Where i have gone wrong.
I have one more query, If i have to rest a "list" as a response from the server (webservice), how i can add the list into the SOAPMessage? Whether i need to parse it and add the values one by one in the SOAPMessage? like
<empname> xxxx</empname> <empage>25</empage>
<empname> yyyy</empname> <empage>26</empage>
Please answer these queries.
Thanks,
Rithu
Maybe you are looking for
-
I regret upgrading to IOS 8 now because I cannot see the artwork for my video's. That is the only reason I downloaded them through iTunes because I liked the way they displayed the art work of the video. Now all I get is a gray box with the title i
-
Want to use my new Touch but I am away from my home PC.
I have a new IPod touch but am not at home. Can I do the get started stuff with another computer? What happens (if anything) when I get home and set things up on my PC?
-
FILE Adapter (Key field)
Hi, FILE-XI-FILE scenario Msg Structure is like this <b>DT_HEADER</b> - >COMPANY - >LOCATION <b>DT_CONTENT</b> ->FIRSTNAME ->LASTNAME ->DESIGNATION ->LOGIN ->LOGOUT ->TIME I have given <i>company and Firstname</i>
-
Is there a way to sync a Mac Air with a Mac Mini
Is there a way to sync a Mac Air with a Mac Mini?
-
Javax.jms.Destination found at the specified.....
I am making a Message Driven EJB, but i get this error when i try to run it."javax.jms.Destination found at the specified destination-location (jms/theTopic) for MessageDrivenBean MessageDrivenEJB".I am using JDeveloper 9.0.5 My ejb-jar <enterprise-b