Skip navigation
irgei
Currently Being Moderated

Webservice: method GET to WSDL url is OK - DocumentError: HTTP 405 on method PUT

Feb 9, 2011 4:18 AM

Hi Folks

 

I just installed the "LiveCycle ES" Trial  VMWare-image for ESX-Server (which uses JBoss) and tried to call the  ReaderExtensionsServiceClient webservice using the java sample and  always get this exception:

...

Caused by: com.adobe.idp.DocumentError: 405: HTTP method PUT is not supported by this URL

...

 

I sticked to the adobe webservice client sample as shown in the source below. The sniplet does not show the real IP address.

The WSDL-url works fine for GET in the browser: http://server-ip-address:8080/soap/services/ReaderExtensionsService?wsdl&lc_v ersion=9.0.0

The  services are all activated in the Trial VMWare-image. I did not import  ReaderExtensions credentials, as I was unable to find the view for this  in the AdminUI, but the Trial VMWare-image should have some  ReaderExtensions credentials preinstalled.

 

Any hints welcome what to change to get this working.

best regards

irgei

 

 

  Properties connectionProps = new Properties();
   connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAUL T_SOAP_ENDPOINT, "http://server-ip-address:8080");
   connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSP ORT_PROTOCOL,
      ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
   connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER _TYPE,
      ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE);
   connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDEN TIAL_USERNAME, "Administrator");
   connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDEN TIAL_PASSWORD, "password");

   UsageRights usageRights = new UsageRights();
   usageRights.setEnabledComments(true);
          
   ReaderExtensionsOptionSpec options = new ReaderExtensionsOptionSpec(usageRights, "my usage rights message");


   ServiceClientFactory factory = ServiceClientFactory.createInstance(connectionProps);
    ReaderExtensionsServiceClient service = new ReaderExtensionsServiceClient(factory);
   Document inDocument = new Document(new File(testBaseDir, "test-input.pdf"), false);

   Document rightsApplied = service.applyUsageRights(inDocument, "", "", options);
   rightsApplied.copyToFile(new File(testBaseDir, "test-output.pdf"));

 
Replies
  • Currently Being Moderated
    Feb 9, 2011 5:39 AM   in reply to irgei

    Okay, there's a lot going on in your post, let's try to break it down:

     

    1 - You NEED a Reader Extensions credential.  With out a valid credential you will not be able to RE any documents

     

    2 - To do a quick test to see if Reader Extensions is up and running, start with the built in verification sample:

    http://{yourServer}:{port}/ReaderExtensions/  for example

    http://localhost:8080/ReaderExtensions/

     

    Login using administrator/password

    If you can convert using that tool, then at least we know Reader Extensions is working properly

     

    3 - You need to pass in the RE credential's alias as a parameter to the web service call.  I belive that this is the second parameter for the applyUsageRights method call

     

     

    You may want to have a look at the examples that are provided in the Quick Start Guides:

    http://help.adobe.com/en_US/livecycle/9.0/programLC/help/index.htm?con tent=000299.html

     
    |
    Mark as:
  • Currently Being Moderated
    Feb 9, 2011 8:20 AM   in reply to irgei

    The HTTP Put error is a little odd.  I've always thought the web service calls used HTTP Post or Get.

     

    Having said that:

     

    How are you passing your PDF to LiveCycle?  As you say, LiveCycle will take the binary file in various formats including MTOM, base64 and a few others.  You have to "tell" LiveCycle what method you are using however.  This is done by appending a blob parameter to the end of the request URL.

     

    For example if you are going to send your PDF as a base64 encoded string, you append: ?blob=base64 to the service URL.  Then you would read the binary object into the blob's setBinaryData method.

     

    If you are using MIME/DIME or MTOM then you need to set the attachment and then pass its reference to the blob object.

     

    If you set nothing, then LiveCycle assumes that you are passing the file by reference.  In that case you are not actually passing the document, but you are setting the blob object with the URL of the document.  Similarly, LiveCycle will return a URL to the Reader Extended document.

     

    I wrote an article on calling LiveCycle using Java and SOAP a while ago.  It doesn't include MTOM (older versions of LC didn't support it), but the general idea is the same.

     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points