Hi all,
I'm looking for a an example of consuming custom service using soapUI. Can anyone explain step-by-step how to configure and run the test?
An example of calling HelloWorldService is acceptable too.
Thanks in advance.
Best regards,
Anton
Hi,
it's actually pretty much straight forward. Assuming that you do have dfs deployed on your JMS on the content server, yoo
can try it with ObjectService.get().
1. Create a new soapUI Project, and specify the wsdl like http://<your_host>:9080/services/core/ObjectService?wsdl
2. Mark checkbox "Create sample requests...."
3. Double click the Request 1 for get operation.
4. Click the xml tab, and replace the entire content with
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:core="http://core.services.fs.documentum.emc.com/" xmlns:core1="http://core.datamodel.fs.documentum.emc.com/" xmlns:prop="http://properties.core.datamodel.fs.documentum.emc.com/"> <soapenv:Header> <ServiceContext xmlns="http://context.core.datamodel.fs.documentum.emc.com/" xmlns:ns2="http://properties.core.datamodel.fs.documentum.emc.com/" xmlns:ns3="http://core.datamodel.fs.documentum.emc.com/"> <Identities repositoryName="<your_repo>" userName="<your_user>" password="your_password" xsi:type="RepositoryIdentity" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/> </ServiceContext> </soapenv:Header> <soapenv:Body> <core:get xmlns:ns2="http://properties.core.datamodel.fs.documentum.emc.com/" xmlns:ns4="http://core.datamodel.fs.documentum.emc.com/" xmlns:ns5="http://ws.archiving.services.noark.steria.com/" xmlns:ns6="http://rt.fs.documentum.emc.com/"> <!--Optional:--> <forObjects isInternal="false"> <!--Zero or more repetitions:--> <core1:Identities valueType="OBJECT_ID" repositoryName="<your_repo>"> <!--You have a CHOICE of the next 6 items at this level--> <core1:ObjectId id="<any valid r_object_id>"/></core1:Identities> </forObjects><options><ns4:Profiles xsi:type="ns848:PropertyProfile" filterMode="ALL" isProcessIncludedUnknown="true" xmlns:ns848="http://profiles.core.datamodel.fs.documentum.emc.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><xml-fragment filterMode="?" isProcessIncludedUnknown="?" xmlns:prof="http://profiles.core.datamodel.fs.documentum.emc.com/"> <!--Zero or more repetitions:--> <prof:IncludeProperties>?</prof:IncludeProperties> <!--Zero or more repetitions:--> <prof:ExcludeProperties>?</prof:ExcludeProperties></xml-fragment></ns4:Profiles></options> <!--Optional:--> </core:get> </soapenv:Body></soapenv:Envelope>
Click the play button, and it should return the specified object.
The "trick" is to get the header information correct, and to add the required xmlns defintions.
Good luck
Jørg
Added the xml as a file, some double quotes seemed to be removed :-(
Thank a lot for your valuable answer. It works!
My next step is to test my custom service. I hope it will work too.
Thanks!
You're welcome,
it will work, this is how we test our services
Regards
Hi Joerg,
I've deployed my custom service. The WSDL is loaded in the soapUI where the request looks like:
But when running it the following error response occurs:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Server</faultcode>
<faultstring>Could not initialize class com.documentum.fc.client.DfClient</faultstring>
<detail>
<ns3:ServiceException xmlns:ns3="http://rt.fs.documentum.emc.com/" xmlns:ns2="http://dossier.services.dcd.fvl.nl">
<exceptionBean>
<exceptionClass>java.lang.NoClassDefFoundError</exceptionClass>
<genericType>java.lang.Error</genericType>
<message>Could not initialize class com.documentum.fc.client.DfClient</message>
<messageId>E_UNKNOWN_CODE</messageId>
</exceptionBean>
<messageId>Could not initialize class com.documentum.fc.client.DfClient</messageId>
<stackTraceAsString>com.emc.documentum.fs.rt.ServiceException: Could not initialize class com.documentum.fc.client.DfClient
at nl.fvl.dcd.services.dossier.DossierServiceWebService.searchDocument(DossierServiceWebService.java:88)
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.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:246)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146)
at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:257)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:93)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:243)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:444)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:244)
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:135)
at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:129)
at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:160)
at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:173)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.documentum.fc.client.DfClient
at com.emc.documentum.fs.rt.context.impl.SessionManagerFactory$SessionManagerWrapper.newClient(SessionManagerFactory.java:192)
at com.emc.documentum.fs.rt.context.impl.SessionManagerFactory$SessionManagerWrapper.getClient(SessionManagerFactory.java:182)
at com.emc.documentum.fs.rt.context.impl.SessionManagerFactory$SessionManagerWrapper.newManager(SessionManagerFactory.java:119)
at com.emc.documentum.fs.rt.context.impl.SessionManagerFactory$SessionManagerWrapper.getManager(SessionManagerFactory.java:104)
at com.emc.documentum.fs.rt.context.impl.SessionManagerFactory.getSessionManager(SessionManagerFactory.java:63)
at com.emc.documentum.fs.rt.context.DfcSessionManager.getSessionManager(DfcSessionManager.java:38)
at com.emc.documentum.fs.rt.context.impl.ServiceContextCleanupHandler.cleanup(ServiceContextCleanupHandler.java:44)
at com.emc.documentum.fs.rt.context.impl.ServiceContextCleanupHandler.invoke(ServiceContextCleanupHandler.java:37)
at $Proxy263.searchDocument(Unknown Source)
at nl.fvl.dcd.services.dossier.DossierServiceWebService.searchDocument(DossierServiceWebService.java:84)
... 39 more</stackTraceAsString>
</ns3:ServiceException>
</detail>
</S:Fault>
</S:Body>
</S:Envelope>
Do you have any idea what is going wrong here?
Hi Anton,
it bit late for deep debugging over her (almost midnight), but it looks like you're getting the error on the server side, meaning that your service seems to be deployed ok.
However, it looks like you somehow forgot to include certain parts during the the build.
Post the build.xml here, and I've a look at it tomorrow morning, some 10 hrs from now.
Good night
It's midnight too here, no problem. In case you check this mail:
I'm using the Composer and use the following steps to create the ear:
1. Clean and build the project that will compile the class in the Web Services source and also execute the generateModel and generateArtifacts ant tasks
2. When done using the Export of the project which creates the ear file
3. Then put the ear file in the method server
So I don't see any build.xml.
Any idea?
Thanks.
regards,
The standard, and simple, build scripts for DFS miss out a slew of thestandard jar files such as dfc.jar. If you take a look in the ear file you will find you probably don't have them.
Just modify the build script to include the extras, and you'll get an idea of what to include from the SDK samples and the manuals.
Thanks, I'll check this.
I understand the error but needed to check first if I'm missing any step before start tweaking for nothing.
I have basic query on documents created from SOAP GUI - using DFS webservices (as lot of post we can create it).
Now I want those documents to be available on the SAP modules (MM and QM)- can some one provide some pointer to me - that os this possible ?
Reason is - I have started workflow in SAP and uplaoded certain documents through SOAP GUI from Externet and now business user to work on to that workflow will use transactions and from Intranet. Business user shoould be able to see/view the same documents were uploaded through SOAP GUI.
Hope my query is clear - I am not clear about how internal logic work for SAP to retrieve the documents in MM and QM modules, were uplaoded by SOAP GUI external portal.
Just thought to check -
Can I call ASSAP configuration from SOAP GUI using RFC ? So I do not have to use the DFS ? as I have already confogured the ASSAP for MM and QM modules.