You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks for this plugin - its proved very useful in my project. I did however have a problem using it with bindings files which I thought worth raising as it might be worthwhile adding to the doco
The problem I encountered was using it from the Groovy DSL. I have multiple WSDL each with their own binding file - I was trying to use the following config which was failing:
wsdl2java {
cxfVersion = "${project.ext.cxfVersion}" // Referring to this via project.ext to avoid name clash
markGenerated = "yes-jdk9"
wsdlDir = file("$projectDir/src/main/resources/wsdl")
addCompilationDependencies = true
// Map wsdls and cxf-parameters
includesWithOptions = [
"wsdl1.wsdl" : ['-b', 'binding1.ejb'],
"wsdl2.wsdl" : ['-b', 'binding2.ejb'],
"wsdl3.wsdl" : ['-b', 'binding3.ejb']
]
}
Doing the above - with the wsdl and bindings file in the same directory ("$projectDir/src/main/resources/wsdl") I was getting an error
Failed to generate sources from WSDL:
org.apache.cxf.tools.common.ToolException: java.lang.IllegalArgumentException: URI is not hierarchical
at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:410)
at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:105)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)
at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)
at com.github.bjornvester.wsdl2java.Wsdl2JavaWorker.execute(Wsdl2JavaWorker.kt:18)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:49)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:43)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:97)
at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:43)
at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49)
at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30)
at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:85)
at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:55)
at org.gradle.process.internal.worker.request.WorkerAction$1.call(WorkerAction.java:138)
at org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41)
at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:135)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.IllegalArgumentException: URI is not hierarchical
at java.base/java.io.File.<init>(File.java:420)
at org.apache.cxf.resource.URIResolver.tryFileSystem(URIResolver.java:152)
at org.apache.cxf.resource.URIResolver.<init>(URIResolver.java:93)
at org.apache.cxf.resource.URIResolver.<init>(URIResolver.java:75)
at org.apache.cxf.resource.URIResolver.<init>(URIResolver.java:71)
at org.apache.cxf.tools.wsdlto.frontend.jaxws.JAXWSContainer.validate(JAXWSContainer.java:74)
at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:164)
at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:156)
at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:402)
... 31 more
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':wsdl2java'.
> A failure occurred while executing com.github.bjornvester.wsdl2java.Wsdl2JavaWorker
> Failed to generate Java sources from WSDL. See the log for details.
I eventually found that the whole path to the binding file needs to specified - i.e.
wsdl2java {
cxfVersion = "${project.ext.cxfVersion}" // Referring to this via project.ext to avoid name clash
markGenerated = "yes-jdk9"
wsdlDir = file("$projectDir/src/main/resources/wsdl")
addCompilationDependencies = true
// Map wsdls and cxf-parameters
includesWithOptions = [
"wsdl1.wsdl" : ['-b', "$projectDir/src/main/resources/wsdl/binding1.ejb".toString()],
"wsdl2.wsdl" : ['-b', "$projectDir/src/main/resources/wsdl/binding2.ejb".toString()],
"wsdl3.wsdl" : ['-b', "$projectDir/src/main/resources/wsdl/binding3.ejb".toString()]
]
}
Note that it was not enough to just quote the path to the binding file relative to the project directory - e.g. 'src/main/resources/wsdl/binding1.ejb', so in Groovy I used a Groovy string "$projectDir/src/main/resources/wsdl/binding1.ejb".
Note also that the toString() is required because the Array needs to be a List of String and its not being converted automatically - without the toString() you get:
Failed to generate sources from WSDL:
java.lang.ArrayStoreException: arraycopy: element type mismatch: can not cast one of the elements of java.lang.Object[] to the type of the destination array, java.lang.String
at java.base/java.util.Arrays.copyOf(Arrays.java:3722)
at java.base/java.util.ArrayList.toArray(ArrayList.java:432)
at com.github.bjornvester.wsdl2java.Wsdl2JavaWorker.execute(Wsdl2JavaWorker.kt:61)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:49)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:43)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:97)
at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:43)
at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49)
at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30)
at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:85)
at org.gradle.workers.internal.WorkerDaemonServer.run(WorkerDaemonServer.java:55)
at org.gradle.process.internal.worker.request.WorkerAction$1.call(WorkerAction.java:138)
at org.gradle.process.internal.worker.child.WorkerLogEventListener.withWorkerLoggingProtocol(WorkerLogEventListener.java:41)
at org.gradle.process.internal.worker.request.WorkerAction.run(WorkerAction.java:135)
at jdk.internal.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':wsdl2java'.
> A failure occurred while executing com.github.bjornvester.wsdl2java.Wsdl2JavaWorker
> Failed to generate Java sources from WSDL. See the log for details.
The text was updated successfully, but these errors were encountered:
Hiyah,
Thanks for this plugin - its proved very useful in my project. I did however have a problem using it with bindings files which I thought worth raising as it might be worthwhile adding to the doco
The problem I encountered was using it from the Groovy DSL. I have multiple WSDL each with their own binding file - I was trying to use the following config which was failing:
Doing the above - with the wsdl and bindings file in the same directory ("$projectDir/src/main/resources/wsdl") I was getting an error
I eventually found that the whole path to the binding file needs to specified - i.e.
Note that it was not enough to just quote the path to the binding file relative to the project directory - e.g. 'src/main/resources/wsdl/binding1.ejb', so in Groovy I used a Groovy string "$projectDir/src/main/resources/wsdl/binding1.ejb".
Note also that the toString() is required because the Array needs to be a List of String and its not being converted automatically - without the toString() you get:
The text was updated successfully, but these errors were encountered: