Using WSDLs in UCM 11g like you did in 10g

In UCM 11g, the way to call web services has changed a bit. You can now use Oracle Web Services Manager and Web Services Security when calling UCM services. Details can be found in the on-line documentation.

But if you want to use WSDLs and call the services with Basic Authentication like you did in the 10g version, you can do that as well. But there is a bit of a trick to get it to work.

When you install 11g, the WsdlGenerator component will be installed automatically. You can then go to Administration -> Soap Wsdls to create and modify the Wsdls. But if you try to access them through the browser, you'll get a 403 Forbidden error. You need to access the WSDLs directly from the file system in the \groups\secure\wsdl\custom\ directory.

Once you have the WSDL, you need to make a small change to the server URL to use Basic Authentication. At the bottom of the WSDLs, you'll find a section that looks like:


<service name="Workflow">
<port name="WorkflowSoap" binding="s0:WorkflowSoap">
<soap:address location="http://server:16200/cs/idcplg" />
</port>
</service>

You'll want to change the path and include _dav.


<service name="Workflow">
<port name="WorkflowSoap" binding="s0:WorkflowSoap">
<soap:address location="http://server:16200/_dav/cs/idcplg" />
</port>
</service>

That is the URL you want to call over web services.

Comments:

i do what u said but it ends with an Unauthorized error, i think this is because when i create the webservice proxy it didnt have setUsername and setPassword methods like it was created in 10g So what do you think?? Thanks in advance

Posted by Karim Fathy on August 09, 2010 at 09:05 PM CDT #

Hello Karim, Yes, if you are calling a service that would not be allowed access by anonymous users (like an update or info on a secure content item), you need to set the basic authentication header with the user information. I like to use the open source soapUI tool for testing my web services first to make sure I have the right connection and data is going back and forth. It makes it easy to import the WSDLs, set properties, and set the username/password as part of the request for testing. Hope that helps! -Kyle

Posted by kyle.hatlestad on August 10, 2010 at 01:26 AM CDT #

The 403 issue only happens if you are using the filestore provider with jdbc storage. This issue should be fixed in the next patchset.

Posted by Jason Ganske on August 26, 2010 at 02:46 AM CDT #

Hi, Great post, what about accessing webservices without user credentials in 11g? I am using soapui to call a docinfo-->docinfobyid service and search for a public available content item. If I provide user credentials it does work, otherwise the following is displayed: Error 401--Unauthorized: The request requires user authentication (in a HTML response).

Posted by Vincent on September 16, 2010 at 08:08 PM CDT #

Hey Vincent, Yes, that does appear to be the case that an authentication header is required now. One way to get around that is to create a local 'guest' user through the User Admin applet and grant that user the 'guest' account only. That is effectively what an anonymous user gets as far as permissions. You can then use that guest login for those web service requests. Thanks, Kyle

Posted by kyle.hatlestad on September 27, 2010 at 01:55 AM CDT #

Hi I have tried your Process, still I am getting 403 issue, Even I have used soapUI and passed the url http://appecmdv01:16200/cs/groups/secure/wsdl/custom/DocInfo.wsdl getting an error "Error importing wsdl." Please help me out and explaing the process. Thank you in advance

Posted by Rudra Mitra on November 22, 2010 at 08:21 PM CST #

Hello Rudra, Do you have your File Store Provider set to JDBC storage? As noted above, there is a bug when accessing the WSDL through a URL when JDBC storage is turned on. Regardless, I would recommend making a copy of the file from the \groups\secure\wsdl\custom\ directory. Then you can point soapUI to that copy. The reason I recommend making a copy is the server re-generates the WSDL files on startup and at different points. So if you made the corrections directly in that original file, they will eventually get overwritten. Thanks, -Kyle

Posted by kyle.hatlestad on November 23, 2010 at 12:57 AM CST #

Hi Kile, Your approach works fine except one thing. When you restart the UCM server it automatically regenerates the WSDLs, loosing in this way all the changes made to the URLs. Do you have any solution for that? Al

Posted by Alex on February 20, 2011 at 10:31 PM CST #

Hello Al, Yes, there are a couple of options. One is to simply copy the .wsdl file to another location. Their location on the file system is simply their published location. They do not need to remain there. The second option is to upgrade to the PS3 release in which this bug and the bug regarding accessing the .wsdl files via the web interface have been fixed. Thanks, -Kyle

Posted by kyle.hatlestad on February 21, 2011 at 01:28 AM CST #

Can someone post an sample SOAP Message with basic authentication. I have tried with soap header, it gives me "The request requires user authentication. The response MUST include a WWW-Authenticate header..."

Posted by Ramesh on April 15, 2011 at 07:12 AM CDT #

Hey Ramesh, This is what the header property would look like for the SOAP request with basic authentication: Authorization: Basic d2VibG9naWM6d2VsY29tZTE= I would recommend soapUI to test the SOAP messages. There is a GUI where you can set header information like authentication and then inspect the messages being sent across and back. Thanks, -Kyle

Posted by kyle.hatlestad on April 15, 2011 at 07:54 AM CDT #

Thank you Kyle for the tip. It worked, soapUI tool is very helpful to test soap calls. Appreciate your quick response.

Posted by Ramesh on April 15, 2011 at 08:34 AM CDT #

Kyle, We would like to understand CMIS standards implementation in Oracle UCM. (a) For instance, for createDocument() method described in OASIS spec, we do not see same method name while using UCM 11g web service ? (b) Or is there CMIS service endpoint different from the UCM 11g web service end point - which component should be running under weblogic to provide CMIS interface (c) Or is CMIS std implementation specific to Web Center and not available when only UCM 11g is running ? I am a DBA and trying understand and help the rest of the team. Thanks in advance.

Posted by Ramesh on April 19, 2011 at 11:38 PM CDT #

Hello Ramesh, Currently in UCM 11g, CMIS is not available. Only through WebCenter (which sits on top of UCM) is the CMIS interface available. And its current implementation is only for searching and retrieving. Not for creating or submitting content. More information can be found in the WebCenter documentation. Thanks, -Kyle

Posted by kyle.hatlestad on April 20, 2011 at 12:21 AM CDT #

Kyle,
For the past couple of months, we have migrating from 10g to 11g. Currently we have an issue with submitting revisions into the system, regardless if a file stream is attached to the revision or not. It seems that "checkinRevisionStream" for ISCSDocumentCheckinResponse is where the problems are coming from. Here is the error message being produced.

Caused by: com.stellent.cis.client.command.CommandException: Unable to execute service CHECKIN_SEL_SUB and function addFiles.

Caused by: com.stellent.cis.server.api.scs.request.SCSRequestException: Unable to execute service CHECKIN_SEL_SUB and function addFiles.

Has something occurred in 11g that would cause "checkinRevisionStream" to no longer work the way it was configured for 10g? Also any input you could provide on what exactly the error messages are saying would be much appreciated.
Thanks - Isaac

Posted by guest on October 28, 2011 at 03:51 AM CDT #

Hi Kyle

Thanks for wonderful site.

I have tried with soapUI to get a file form UCM but I am getting following error. Any help wound be highly appreciated.

Request
=======

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:get="http://www.stellent.com/GetFile/">
<soapenv:Header/>
<soapenv:Body>
<get:GetFileByName>
<!--Optional:-->
<get:dDocName>XX-0149</get:dDocName>
<get:revisionSelectionMethod>LatestReleased</get:revisionSelectionMethod>
</get:GetFileByName>
</soapenv:Body>
</soapenv:Envelope>

Response
========

Wed Apr 11 14:49:49 CDT 2012:DEBUG:Sending request: POST http://test:16200/_dav/cs/idcplg HTTP/1.1
Wed Apr 11 14:49:50 CDT 2012:DEBUG:Receiving response: HTTP/1.1 200 OK
Wed Apr 11 14:49:50 CDT 2012:DEBUG:Connection can be kept alive indefinitely
Wed Apr 11 14:50:52 CDT 2012:DEBUG:Connection shut down
Wed Apr 11 14:50:52 CDT 2012:ERROR:An error occured [socket closed], see error log for details
Wed Apr 11 14:50:52 CDT 2012:INFO:Got response for [GetFileSoap.GetFileByName:Request 1] in 1215ms (0 bytes)

Wed Apr 11 14:50:52 CDT 2012:ERROR:java.net.SocketException: socket closed
java.net.SocketException: socket closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)

Posted by guest on April 11, 2012 at 10:10 AM CDT #

I am using soapUI, I have modified the endpoint and added authentication values but I get the following response:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /_dav/cs/idcplg/webdav/ was not found.</p>
</body></html>

Any ideas? Is it because OHS is not configured for "/_dav/"?

Posted by guest on May 17, 2012 at 09:43 AM CDT #

Yes, if you are going through your OHS layer and not directly through the port on WebLogic Server, you need to have "_dav" included in the mod_wl_ohs.conf file.

Posted by Kyle Hatlestad on May 18, 2012 at 10:46 AM CDT #

Hi Kyle,

I am trying to checkin the document using GenericSoapService web service.
As per Oracle documentation it won't ask any authentication while executing CHECKIN_UNIVERSAL. But i am getting authentication exception.

SOAP Request :-
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ucm="http://www.oracle.com/UCM">
<soapenv:Header/>
<soapenv:Body>
<ucm:GenericRequest webKey="cs">
<ucm:Service IdcService="CHECKIN_UNIVERSAL">
<ucm:User>
<ucm:Field name="?">?</ucm:Field>

</ucm:User>
<ucm:Document>
<ucm:Field name="dDocName">asdfa</ucm:Field>
<ucm:Field name="dUser">anonymous</ucm:Field>
<ucm:Field name="dDocTitle">sumitdocTitle</ucm:Field>
<ucm:Field name="dDocType">Document</ucm:Field>
<ucm:Field name="dDocAuthor">weblogic</ucm:Field>
<ucm:Field name="dSecurityGroup">Public</ucm:Field>
<ucm:Field name="dDocAccount"/>
<ucm:File name="pro33.txt" href="c://temp/test8.txt">
<ucm:Contents>cid:787913155499</ucm:Contents>
</ucm:File>
</ucm:Document>
</ucm:Service>
</ucm:GenericRequest>
</soapenv:Body>
</soapenv:Envelope>

SOAP Response :- (summarized error description)
StatusMessage=Content item 'asdfa' was not successfully checked in. System needs login authentication credentials.

Posted by guest on June 08, 2012 at 09:08 AM CDT #

You must configure web service security (WC-Security) when working with that type of Web Service. http://docs.oracle.com/cd/E23943_01/doc.1111/e10807/c19_web_services.htm#CHDBHHGJ

Thanks,
-Kyle

Posted by Kyle Hatlestad on June 12, 2012 at 08:07 AM CDT #

Hi Kyle,

Thanks for your support.

I done the changes in WC-Security as per the documents then i tried to call CHECKIN_UNIVERSAL from soapui. Again I'm getting same error.

Regards,
Vijay

Posted by guest on June 12, 2012 at 10:33 PM CDT #

Hello Vijay,

If you feel you've followed the guide on setting up the WC-Security, then it sounds like some troubleshooting is needed. I would contact technical support and have them look at your environment specifically.

Thanks,
-Kyle

Posted by Kyle Hatlestad on June 13, 2012 at 08:57 AM CDT #

HI!!

UCM 10 and I have an application I intergrar iPad ios. in which consume the WS to see the contents of folders, anyone have any documentation on how I can do.
tanks for you help!!!

Posted by guest on August 09, 2012 at 01:42 PM CDT #

Hi Kyle,
I want to achieve:- Send email notification to Admin if the document is checked out by user and not checked in back within 1 day.
How Would i Achieve this.

-Thanks,
Prashant

Posted by guest on March 22, 2013 at 02:55 AM CDT #

Hello Prashant,

This can be achieved with a scheduled event in a custom component. If you're not familiar with customizing WebCenter Content with Component Architecture, there are courses available from Oracle University or you can contact Oracle Consulting Services or an Oracle Partner who could assist in creating such a component.

Thanks,
-Kyle

Posted by Kyle Hatlestad on March 26, 2013 at 10:00 AM CDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

Kyle Hatlestad is a Solution Architect in the WebCenter Architecture group (A-Team) who works with WebCenter Content and other products in the WebCenter & Fusion Middleware portfolios. The WebCenter A-Team blog can be found at: https://blogs.oracle.com/ ateam_webcenter/

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today