tWebserviceInput: Crashhandling

One Star

tWebserviceInput: Crashhandling

Hi talend-team,
sometimes tWebserviceInput crash with this message:
Starting job KISS at 12:03 21/05/2008.
Exception in component tWebServiceInput_1
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.NullPointerException
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}hostnameSmiley TongueROD
java.lang.NullPointerException
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 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1772)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2923)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:645)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
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 org.talend.DynamicInvoker.invokeMethod(DynamicInvoker.java:289)
at org.talend.DynamicInvoker.main(DynamicInvoker.java:162)
at org.talend.DynamicInvoker.main(DynamicInvoker.java:119)
at inpower.kiss.KISS.tInfiniteLoop_1Process(KISS.java:286)
at inpower.kiss.KISS$1.run(KISS.java:555)
Job KISS ended at 12:05 21/05/2008.
Is it possible to prevent talend to end the whole job? I would like, that twebserviceinput just retry, not to die?
One Star

Re: tWebserviceInput: Crashhandling

Hi,
Your exception is a NullPointerException.
It means that an input value is null and should not be null...
Make sure that your columns in tWebServiceInput schema are nullable.
One Star

Re: tWebserviceInput: Crashhandling

Thanks for your tip, but it doesn't work. All columns are nullable.
Lets see, perhaps, I'll get soon another idea.
One Star

Re: tWebserviceInput: Crashhandling

Hi,
In your tMap field, you can handle the null value as you wich.
For example :
myField == null ? 0 : myField

Will insert the value of your field if it's not null, or the value 0 if it's null.
If your line is treated by a function, you can also handle the exception in a try/catch clause.
For example :
try
{
// My Code
return myValue;
}
catch(NullPointerException ex)
{
return 0;
}

Hope it will help
One Star

Re: tWebserviceInput: Crashhandling

Hi maverick, thanks for your help and sorry that I am responding that late ...
I'm trying to use tMap with twebservice, but it crashes in any case, even when I run it without other components.
I add this code to tjavarow:
if(row3.output == null)
row4.output = "0";
else
row4.output = row3.output;
but no change.
Conclusion:
tWebServices can't handle "null" or "NullPointerException" as response.
One Star

Re: tWebserviceInput: Crashhandling

Hi maverick, thanks for your help and sorry that I am responding that late ...
I'm trying to use tMap with twebservice, but it crashes in any case, even when I run it without other components.
I add this code to tjavarow:
if(row3.output == null)
row4.output = "0";
else
row4.output = row3.output;
but no change.
Conclusion:
tWebServices can't handle "null" or "NullPointerException" as response.

Use Var section and first check for the null value and then use the Var variable in the output section
say col1 is null, in Var section, row1.col1==null?0:row1.col1 and now you can use the new variable for mapping. Smiley Happy