我正在努力开发一个Android应用程序.我需要使用Web服务.我有一个wsdl文件,但我想将其转换为java,以便我可以在我的Java程序中使用它的函数.有没有办法将wsdl文件转换为Java?
我在java 10+上寻找org.apache.cxf:cxf-spring-boot-starter-jaxws与jaxws-api/jaxws-ri的兼容组合.
我们的应用程序在java 8上运行良好.另外在java 9和10上使用--add-modules = java.se.ee.
但是,当我删除此选项并添加以下依赖项:
compile group: 'javax.xml.ws', name: 'jaxws-api', version: '2.3.0'
compile group: 'com.sun.xml.ws', name: 'jaxws-ri', version: '2.3.0.2', ext: 'pom'
compile group: 'com.sun.xml.ws', name: 'jaxws-rt', version: '2.3.0.2', ext: 'pom'
Run Code Online (Sandbox Code Playgroud)
公共依赖项(在java 9/10或java 8中使用/不使用--add-modules):
compile('org.apache.cxf:cxf-spring-boot-starter-jaxws:3.2.6')
Run Code Online (Sandbox Code Playgroud)
我变得:
Caused by: java.lang.NoSuchMethodError: javax.jws.WebMethod.exclude()Z
at org.apache.cxf.jaxws.support.JaxWsServiceConfiguration.isOperation(JaxWsServiceConfiguration.java:190)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.isValidMethod(ReflectionServiceFactoryBean.java:1962)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.createInterface(ReflectionServiceFactoryBean.java:999)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.buildServiceFromClass(ReflectionServiceFactoryBean.java:461)
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.buildServiceFromClass(JaxWsServiceFactoryBean.java:695)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:530)
at org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:263)
at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:199)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:103)
at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:168)
at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:460)
at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:338)
at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:255)
at .....
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:361)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at …Run Code Online (Sandbox Code Playgroud) 我发布这个问题是因为我无法理解为了从我的java项目加载资源文件我必须做什么.
结构如下:
我想要做的是加载boletinoficial.wsdl文件以获取URL.
我曾尝试多种方法来做到这一点:getClass.getClassLoader.getResource(),getClass.getResource(),使用绝对路径,相对路径.但总是得到null或异常.我还在src构建路径中添加了文件夹,但没有成功.
有没有简单的方法来加载该文件?
编辑
好.现在我有了结构,
如何boletinoficial.wsdl从App.java类加载资源?
java ×3
android ×1
getresource ×1
java-11 ×1
maven ×1
soap ×1
spring-boot ×1
web-services ×1
wsdl ×1