Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Validate my tESBProviderRequest payload using xsd

Hi, 

 

i want to validate my SOAP request before doing any processing on it. I have seen the component tXSDValidator but i get this exception :

 

org.talend.designer.runprocess.ProcessorException: Erreurs de compilation du Job 
Au moins le Job "brouillon" a des erreurs de compilation, réparez et réexportez.
Ligne en erreur: 1524
Message détaillé: Cannot cast from Document to String
Il peut y avoir d'autres erreurs causées par la compatibilité avec la JVM. Vérifiez que les paramètres de votre JVM sont les mêmes que dans le studio.

	at org.talend.designer.runprocess.JobErrorsChecker.checkLastGenerationHasCompilationError(JobErrorsChecker.java:338)

	at org.talend.designer.runprocess.DefaultRunProcessService.checkLastGenerationHasCompilationError(DefaultRunProcessService.java:510)

	at org.talend.designer.runprocess.RunProcessService.checkLastGenerationHasCompilationError(RunProcessService.java:316)

	at org.talend.designer.runprocess.ProcessorUtilities.generateBuildInfo(ProcessorUtilities.java:820)

	at org.talend.designer.runprocess.ProcessorUtilities.generateCode(ProcessorUtilities.java:601)

	at org.talend.designer.runprocess.ProcessorUtilities.generateCode(ProcessorUtilities.java:1861)

	at org.talend.designer.runprocess.RunProcessContext$1.run(RunProcessContext.java:601)

	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:466)

	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:374)

	at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:527)

	at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:284)

	at org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:1190)

	at org.talend.designer.runprocess.RunProcessContext.exec(RunProcessContext.java:548)

	at org.talend.designer.runprocess.remote.RunRemoteProcessContext.exec(RunRemoteProcessContext.java:85)

	at org.talend.designer.runprocess.ui.ProcessComposite.exec(ProcessComposite.java:1401)

	at org.talend.designer.runprocess.ui.views.ProcessView$RunAction.run(ProcessView.java:701)

	at org.talend.designer.runprocess.ui.actions.RunProcessAction.run(RunProcessAction.java:58)

	at org.talend.designer.core.debug.JobLaunchConfigurationDelegate$1.run(JobLaunchConfigurationDelegate.java:84)

	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136)

	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147)

	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764)

	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)

	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)

	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)

	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)

	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)

	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)

	at org.talend.rcp.intro.Application.start(Application.java:265)

	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)

	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)

	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)

	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

	at java.lang.reflect.Method.invoke(Unknown Source)

	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)

	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)

	at org.eclipse.equinox.launcher.Main.run(Main.java:1465)


Below my job and the config of the tESBProviderRequest ;  the schema produced there is one column "payload" of type "Document"

 

0683p000009M5QN.png

 

Here is the config of the tXSDValidator

 

0683p000009M5kq.png

 

 

Can anyone please help me get the right way to do that xsd validation of my incoming SOAP request

 

Regards,

Ousmane SOW

Labels (3)
1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

Hi,

 

I finally got a solution. It is to convert the payload to string and validate the xml string in the tXSDValidator.

 

0683p000009M5Fd.png

 

I use a tJavaRow to :

1. convert my xml payload to string

2. keep the original payload for further processing.  

//Code généré selon les schémas d'entrée et de sortie
output_row.payload = input_row.payload;
output_row.payloadString = input_row.payload.toString();

Below the config of the tXSDValidator : 

 

0683p000009M57Z.png

The outputs (main & reject) will have the data coming from the tJavaRow => payload and payloadString.

 

Hope it can help anyone having the same problem

 

View solution in original post

3 Replies
Anonymous
Not applicable
Author

Hi,

 

Seems to be a syntax/compilation error in your tXSDValidator component. Please validate by checking the code section in your Studio.

 

Thank you!

Anonymous
Not applicable
Author

Hi,

 

I finally got a solution. It is to convert the payload to string and validate the xml string in the tXSDValidator.

 

0683p000009M5Fd.png

 

I use a tJavaRow to :

1. convert my xml payload to string

2. keep the original payload for further processing.  

//Code généré selon les schémas d'entrée et de sortie
output_row.payload = input_row.payload;
output_row.payloadString = input_row.payload.toString();

Below the config of the tXSDValidator : 

 

0683p000009M57Z.png

The outputs (main & reject) will have the data coming from the tJavaRow => payload and payloadString.

 

Hope it can help anyone having the same problem

 

Anonymous
Not applicable
Author

Awesome!!

 

Thank you for sharing the solution 0683p000009MACn.png, appreciate that.