Expand my Community achievements bar.

Error in invocating the service

Avatar

Former Community Member
I have a problem in writing a Java program and calling the service using invocation API. The service is a very simple one, which has one input parameter (String) and one output parameter (XML). When I ran the Java program, I got the following error:



ALC-DSC-000-000: com.adobe.idp.dsc.DSCRuntimeException: Internal error.

at com.adobe.idp.dsc.provider.impl.soap.axis.sdk.SoapAxisDispatcher.doSend(SoapAxisDispatcher.java:102)

at com.adobe.idp.dsc.provider.impl.base.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:57)

at com.adobe.idp.dsc.clientsdk.ServiceClient.invoke(ServiceClient.java:208)

at adobe.lc.sdk.UploadForm.invokeMyService(UploadForm.java:75)

at adobe.lc.sdk.UploadForm.main(UploadForm.java:55)

Caused by: rO0ABXNyAB1vcmcuYXBhY2hlLnNvYXAuU09BUEV4Y2VwdGlvbh5POjjsHQpiAgACTAAJZmF1bHRDb2RldAASTGphdmEvbGFuZy9TdHJpbmc7TAAPdGFyZ2V0RXhjZXB0aW9udAAVTGphdmEvbGFuZy9UaHJvd2FibGU7eHIAE2phdmEubGFuZy5FeGNlcHRpb27Q/R8+GjscxAIAAHhyABNqYXZhLmxhbmcuVGhyb3dhYmxl1cY1Jzl3uMsDAANMAAVjYXVzZXEAfgACTAANZGV0YWlsTWVzc2FnZXEAfgABWwAKc3RhY2tUcmFjZXQAHltMamF2YS9sYW5nL1N0YWNrVHJhY2VFbGVtZW50O3hwcQB+AAZ0AEdBRE1DMDAxMUU6IFRoZSBTT0FQIHJlbW90ZSBwcm9jZWR1cmUgY2FsbCAoUlBDKSBjYW5ub3QgYmUgdW5tYXJzaGFsbGVkLnVyAB5bTGphdmEubGFuZy5TdGFja1RyYWNlRWxlbWVudDsCRio8PP0iOQIAAHhwAAAABnNyABtqYXZhLmxhbmcuU3RhY2tUcmFjZUVsZW1lbnRhCcWaJjbdhQIABEkACmxpbmVOdW1iZXJMAA5kZWNsYXJpbmdDbGFzc3EAfgABTAAIZmlsZU5hbWVxAH4AAUwACm1ldGhvZE5hbWVxAH4AAXhwAAAAsnQALmNvbS5pYm0ud3MubWFuYWdlbWVudC5jb25uZWN0b3Iuc29hcC5TT0FQVXRpbHN0AA5TT0FQVXRpbHMuamF2YXQAD2V4dHJhY3RTb2FwQ2FsbHNxAH4ACgAAAHB0ADJjb20uaWJtLndzLm1hbmFnZW1lbnQuY29ubmVjdG9yLnNvYXAuU09BUENvbm5lY3RvcnQAElNPQVBDb25uZWN0b3IuamF2YXQAB3NlcnZpY2VzcQB+AAoAAAA3dAAzY29tLmlibS53cy5tYW5hZ2VtZW50LmNvbm5lY3Rvci5zb2FwLlNPQVBDb25uZWN0aW9udAATU09BUENvbm5lY3Rpb24uamF2YXQADWhhbmRsZVJlcXVlc3RzcQB+AAoAAAKodAAeY29tLmlibS53cy5odHRwLkh0dHBDb25uZWN0aW9udAATSHR0cENvbm5lY3Rpb24uamF2YXQAFHJlYWRBbmRIYW5kbGVSZXF1ZXN0c3EAfgAKAAAB5HQAHmNvbS5pYm0ud3MuaHR0cC5IdHRwQ29ubmVjdGlvbnQAE0h0dHBDb25uZWN0aW9uLmphdmF0AANydW5zcQB+AAoAAAW9dAAhY29tLmlibS53cy51dGlsLlRocmVhZFBvb2wkV29ya2VydAAPVGhyZWFkUG9vbC5qYXZhdAADcnVueHQAGVNPQVAtRU5WOlNlcnZlci5FeGNlcHRpb25zcgAiamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbrWJc9N9Zo+8AgAAeHIAGmphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9unl8GRwo0g+UCAAB4cQB+AANxAH4AJnQIrGNvbS5hZG9iZS5pZHAuZHNjLnByb3ZpZGVyLmltcGwuZWpiLkVqYlJlcXVlc3RIb2xkZXIKU2VydmVyIHN0YWNrIHRyYWNlCkpNWFRyYW5zZm9ybUV4Y2VwdGlvbiBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbjogY29tLmFkb2JlLmlkcC5kc2MucHJvdmlkZXIuaW1wbC5lamIuRWpiUmVxdWVzdEhvbGRlcgoJYXQgamF2YS5uZXQuVVJMQ2xhc3NMb2FkZXIuZmluZENsYXNzKFVSTENsYXNzTG9hZGVyLmphdmE6NDkyKQoJYXQgY29tLmlibS53cy5ib290c3RyYXAuRXh0Q2xhc3NMb2FkZXIuZmluZENsYXNzKEV4dENsYXNzTG9hZGVyLmphdmE6MTMyKQoJYXQgamF2YS5sYW5nLkNsYXNzTG9hZGVyLmxvYWRDbGFzcyhDbGFzc0xvYWRlci5qYXZhOjYwMykKCWF0IGNvbS5pYm0ud3MuYm9vdHN0cmFwLkV4dENsYXNzTG9hZGVyLmxvYWRDbGFzcyhFeHRDbGFzc0xvYWRlci5qYXZhOjg3KQoJYXQgamF2YS5sYW5nLkNsYXNzTG9hZGVyLmxvYWRDbGFzcyhDbGFzc0xvYWRlci5qYXZhOjU2OSkKCWF0IGNvbS5pYm0ud3MubWFuYWdlbWVudC5jb25uZWN0b3IuaW50ZXJvcC5KTVhDbGFzc0xvYWRlci5sb2FkSk1YQ2xhc3MoSk1YQ2xhc3NMb2FkZXIuamF2YToyMTEpCglhdCBjb20uaWJtLndzLm1hbmFnZW1lbnQuY29ubmVjdG9yLmludGVyb3AuSk1YQ2xhc3NMb2FkZXIubG9hZE9sZEpNWENsYXNzKEpNWENsYXNzTG9hZGVyLmphdmE6MTY1KQoJYXQgY29tLmlibS53cy5tYW5hZ2VtZW50LmNvbm5lY3Rvci5pbnRlcm9wLkpNWENsYXNzTG9hZGVyLmxvYWRDbGFzcyhKTVhDbGFzc0xvYWRlci5qYXZhOjEwMikKCWF0IGNvbS5pYm0ud3MubWFuYWdlbWVudC5jb25uZWN0b3IuaW50ZXJvcC5KTVhPYmplY3RJbnB1dFN0cmVhbS5yZXNvbHZlQ2xhc3MoSk1YT2JqZWN0SW5wdXRTdHJlYW0uamF2YTo5NSkKCWF0IGphdmEuaW8uT2JqZWN0SW5wdXRTdHJlYW0ucmVhZE5vblByb3h5RGVzYyhPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjE1NjMpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRDbGFzc0Rlc2MoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNDg1KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT3JkaW5hcnlPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YToxNzE4KQoJYXQgamF2YS5pby5PYmplY3RJbnB1dFN0cmVhbS5yZWFkT2JqZWN0MChPYmplY3RJbnB1dFN0cmVhbS5qYXZhOjEzMjQpCglhdCBqYXZhLmlvLk9iamVjdElucHV0U3RyZWFtLnJlYWRPYmplY3QoT2JqZWN0SW5wdXRTdHJlYW0uamF2YTozNjIpCglh
20 Replies

Avatar

Former Community Member
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)

at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)

at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)

at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)

at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)

at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)

at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)

at javax.xml.parsers.SAXParser.parse(SAXParser.java:375)

at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)

at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)

at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)

at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)

at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)

at org.apache.axis.client.Call.invokeEngine(Call.java:2784)

at org.apache.axis.client.Call.invoke(Call.java:2767)

at org.apache.axis.client.Call.invoke(Call.java:2443)

at org.apache.axis.client.Call.invoke(Call.java:2366)

at org.apache.axis.client.Call.invoke(Call.java:1812)

at com.adobe.idp.dsc.provider.impl.soap.axis.sdk.SoapAxisDispatcher.doSend(SoapAxisDispatcher.java:100)

... 4 more



The source code is:



public class UploadForm

{



public static void main(String[] args)

{

try

{

Properties connectionProps = new Properties();

connectionProps.setProperty("DSC_DEFAULT_SOAP_ENDPOINT", "http://myserver:40005");

connectionProps.setProperty("DSC_TRANSPORT_PROTOCOL", ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);

connectionProps.setProperty("DSC_SERVER_TYPE", ServiceClientFactoryProperties.DSC_WEBSPHERE_SERVER_TYPE);

connectionProps.setProperty("DSC_CREDENTIAL_USERNAME", "administrator");

connectionProps.setProperty("DSC_CREDENTIAL_PASSWORD", "password");

ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);





invokeMyService ( myFactory );



}

catch (Exception e)

{

e.printStackTrace();

}

}



private static void invokeMyService ( ServiceClientFactory myFactory ) throws Exception

{



ServiceClient serviceClient = myFactory.getServiceClient();

HashMap parameters = new HashMap ( );

parameters.put ( "confirmationNumber", "000000000012" );

InvocationRequest request = myFactory.createInvocationRequest( "QueryForm", "invoke", parameters, true );

InvocationResponse response = serviceClient.invoke( request );

Document xmlDocument = (Document) response.getOutputParameter ( "xmlDocument" );





}

}



The question is, I don't know if this is a client problem or on the server side. If it's the process problem, how can I tell if my process is working?

Avatar

Former Community Member
You can determime whether a process is being invoked and is working by using logging onto the ACC at and clicking Services > LiveCycle Process Management ES > Process Search.



See the Archive Administration Help at http://www.adobe.com/support/documentation/en/livecycle/es/



Do a search on your process and you will be able tell if the process is being invoked and whether it is stalling.



Another suggestion is to make sure that you all the JAR files required to invoke this process using WEBSPHERE and SOAP. For a listing of JAR files see the SDK help at the above URL. The topic is named Including LiveCycle ES library files.



Hope this helps.

Avatar

Level 10
Is you variable xmlDocument of type document or xml in the LiveCycle process?



Can you try to put it in a String just to test your code?



Can you also try to use the EJB invocation instead of SOAP and see if you get the same error?



Jasmin

Avatar

Former Community Member
I dont know whether this is a right forum to ask this question, but I'll go ahead:



I have a batch processing requirement for the Output ES, I am getting an XML document as input that has records for about 500+ PDF's.



I am currently doing the following:



1) Creating the connection properties.

2) Creating an OutputClient.

3) using setSynchronous(false).

4) calling generatePDFOutput



I am getting the output PDFs and the code is working fine.



since this is an asynchronous request, is there some way I can get the status of the request(like a job handle or something)?



I am not using the JobManager currently.

Avatar

Level 10
If you invoke the process asynchronously, then you are using Job Manager.



That's the nature of an asynchronous call. You make the call, then jop manager returns a job id. Then you can use the job id to query the status of the call.



Jasmin

Avatar

Former Community Member
Ok this is what I am doing, But I am getting the invocation ID as

null

InvocationRequest request = myFactory.createInvocationRequest(

"OutputService",

"generatePDFOutput",

params,

false);

InvocationResponse response = myServiceClient.invoke(request);

String invocationId = response.getInvocationId();



But the PDFs are getting generated. Since there are more than 500 pdf getting generated(one XML has all the records) therefore I need to use the asynchronous call. But at the same time I want to also keep querying the status of the process, for that I require a JobManager(and subsequently a JOB ID).Since the invocationId is itself null I am unable to create the job manager.



Can createJob(request,persistent) be used, I checked the API and it said "used internally"?



This is really urgent so a prompt answer please.

Thanks in advance.

Avatar

Former Community Member
Why are you using the Invocation API as opposed to the Output Java client library. It is recommended that you use the Output Java client as opposed to the invocation API.

Avatar

Former Community Member
I needed to use the invocation API because I wanted to use the JobManager, We will be processing about 500 PDF at a go, we wanted the process to be asynchronous and also wanted to find the status of the process at run time.I looked into the documentation and found that only long-lived processes can be used with Job Manager.



Is there some way We can have the same functionality, without using the Job Manager? Or, is there some other way to find out the status of the process while its still executing ?



Thanks in advance.

Avatar

Level 10
"I looked into the documentation and found that only long-lived processes can be used with Job Manager."



Where did you find that in the doc? You should be able to call a short lived process asynchronously. I think there is a bug with the current build (that won't help you now) but technically you should be able to do that.



"Is there some way We can have the same functionality, without using the Job Manager? "



Your best bet would be to call support and see if you can get it fixed.



Jasmin

Avatar

Former Community Member
Hi,

Is XSL-FO supported in LiveCycle Output?

Avatar

Former Community Member
http://livedocs.adobe.com/livecycle/es/sdkHelp/programmer/sdkHelp/invokingIntro.24.3.html



"Processes can be short-lived or long-lived. A short-lived process is an operation that is performed synchronously and on the same execution thread from which it was invoked. Short-lived operations

are comparable to the standard behavior found in most programming languages, where a client application calls a method and waits for a return value."



We can invoke the short-lived process using the JobManager.. but it makes no sense since they are synchronous.



Thanks for your help anyways.



Well. I have another question

How do we use the setRenderAtClient() in the class RenderOptionsSpec.

Have u got any examples or something that could help?

Avatar

Former Community Member
Can the Watched Folder be configured for the GeneratePDFOutput Service.

I have a requirement where I will have to FTP an XML data file to a folder and generate the PDFs?



I dont have an option to use the Java API.

Sushant

Avatar

Former Community Member
I have a small question.

I was looking at the documentation for LiveCycle invocation and found that LiveCycle services can be invoked by

1) Java API (through RMI or SOAP)

2) Web-Services(over SOAP)

3) Watched Folder and Email.



Is there any difference between invoking the Service through Java API SOAP and the Webservice invocation- if my client is a java based client?



Sushant

Avatar

Former Community Member
Sushant,



There is a difference between invoking the Java API with the SOAP protocol configured, and using the web services bindings. For the Java API the primary contract you have is the Java interface itself. We optimize the serialization of objects across this protocol for performance improvements. But the web services interface is based on the WSDL that we publish in the LiveCycle_ES_SDK and is WS-I compliant.



What are the guidelines for using each?

Java API: Use this if you want a strongly typed Java API to call LC or if performance is critical. The RMI protocol is roughly twice as fast as the SOAP protocol, but isn't as firewall friendly. That's why we gave the choice to also use SOAP if needed. We use the Java API with SOAP protocol for the communication between Workbench and the server and for this kind of client/server interaction, the performance difference is negligible.



Web Services: Use this if you would like to call LiveCycle in a more SOA type of architecture. We publish the WSDL and have tested the creation of client stubs with a number of web service implementations including .NET, Axis, etc.



Joe

Avatar

Former Community Member
Thanks Joe for the quick reply,

another question:



How do we call the LiveCycle in a clustered environment using

the SOAP Java API(in Websphere), I know that using RMI(EJB) we can call by using the corbaloc?



Thanks,

Sushant

Avatar

Former Community Member
Hi,

How do we grant the LiveCycle Server the rights to access the physical printer?



Sushant

Avatar

Level 10
As long as the account the LiveCycle service runs under has access to the printer from the LiveCycle server then you should be fine.



Jasmin

Avatar

Former Community Member
Is there anyway to make a static call to the Output Service in a clustered environment(using EJB)?



Sushant

Avatar

Level 10
I'm not sure what you mean by a static call.



Jasmin

Avatar

Former Community Member
By static value what I meant was suppose we have a clustered env with 3 nodes defined(n1,n2,n3) each node having one application server each

a1,a2 and a3 respectively. When we deploy LiveCycle to this environment then LiveCycle will install in all the application servers.



Now suppose only one of the application server say a1 has access to the physical printer,so I would want to be able to send all printer related requests to this specific server only.Is there some way to do it(assume I have a WebSphere env)?



Sushant.