我需要添加包级别注释(XmlJavaTypeAdapters 类型适配器)。问题是,当我运行 wsdl2java 时,它会为该包生成 package-info.java 文件。
当我尝试添加自己的 package-info.java 时,出现错误:“类型 package-ingo 已定义”。
有没有办法将我的注释注入到 package-info.java 中??也许还有其他想法?
谢谢
我想从wsdl生成Java文件。我尝试使用wsdl2java gradle插件。我定义了插件:
subprojects {
buildscript{
repositories{
jcenter()
mavenCentral()
}
dependencies {
classpath 'no.nils:wsdl2java:0.10'
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'maven-publish'
apply plugin: 'application'
apply plugin: 'no.nils.wsdl2java'
....
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个错误:
> Plugin with id 'no.nils.wsdl2java:no.nils:wsdl2java' not found.
Run Code Online (Sandbox Code Playgroud)
我检查了语法(很多时候都很好)。我用谷歌搜索插件,它被很多人使用。
有人知道出什么问题了吗?
更新:
我有一个主要的gradle,其中定义了插件,还有三个子项目,我想在其中使用此插件。
我在中定义了子项目settings.gradle:
include 'project1', 'project2', 'project3'
Run Code Online (Sandbox Code Playgroud)
我build.gradle为每个项目制作了一个文件夹和一个文件。
如果我注释掉 apply plugin: 'no.nils.wsdl2java'的主要build.gradle和wsdl2java在子项目方法gradle这个工作正常。
我正在使用 no.nils.wsdl2java 插件,完整的 gradle.build 文件如下所示:
plugins {
id 'org.springframework.boot' version '2.3.4.RELEASE'
id 'io.spring.dependency-management' version '1.0.12.RELEASE'
id 'java'
id "no.nils.wsdl2java" version "0.10"
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
configurations {
jaxb
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.oracle.database.jdbc:ojdbc8'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
implementation group: 'com.oracle.ojdbc', name: 'orai18n', version: '19.3.0.0'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'com.google.code.gson:gson:2.8.5'
}
tasks.named('test') {
useJUnitPlatform()
}
wsdl2java {
generatedWsdlDir = file("build/generated/wsdl/Service")
wsdlsToGenerate …Run Code Online (Sandbox Code Playgroud) 我有一个受HTTPS保护的Web服务和NTLM身份验证,我通过临时禁用身份验证使用CXF的wsdl2java工具生成了一组java存根.我现在正尝试在连接到Web服务的applet中使用Java存根,并重新启用身份验证.我的目的是编辑Java存根以将来自浏览器会话的身份验证cookie包含到与Web服务的CXF客户端连接中.唯一的问题是存根只是在Service类上调用"super()"并且它自己处理所有连接.有谁知道如何使用从wsdl2java生成的CXF的java存根连接到受https和NTLM身份验证保护的Web服务?
这是构造函数存根:
public Visual_Service(URL wsdlLocation) {
super(wsdlLocation, SERVICE);
}
Run Code Online (Sandbox Code Playgroud) 多年前,我根据给出的WSDL构建了SOAP 1.1服务。这是相当基本的:我执行了Axis的WSDL2Java并将生成的类用作基础。
现在,我被告知要迁移此服务,以便人们可以使用SOAP 1.2来访问它。
我应该在WSDL文件中进行哪些更改,以便新生成的服务(仍使用Axis的WSDL2Java)支持SOAP 1.2?
重要的是要了解我是服务提供商:我不想要仅适用于客户的解决方案。
非常感谢!
我已经从 WSDL 源生成了一堆 java 文件。我使用 Apache CXF 2.6.1 来生成文件。
\n\n当我将代码放入运行 jetty 和 maven 的生产环境中,并通过生成的 java 文件向服务器发送请求时,它会以某种方式更改系统/JVM 字符编码。瑞典语字符 \xc3\xa5、\xc3\xa4 和 \xc3\xb6 更改为 \xc3\x83\xc2\xa5、\xc3\x83\xc2\xa4、\xc3\x83\xc2\xb6。
\n\n我无法在我自己的盒子上重现这个。
\n\n有人有什么想法吗?
\n我现在有一个 wsdl 文件。使用 cxf 的 'wsdl2java' 命令,我将 wsdl 转换为 java 类。
我如何为 wsdl 到 java 转换后生成的接口拥有自己的实现类。?基本上我需要执行以下操作: 1.convert wsdl 到 java 类。2.为生成的类编写实现类。3.Inject cxf in this.(cxf.xml and web.xml for apache CXF) 4.Package it to a war。
我几乎看不到这种自下而上方法的教程/帮助(ir,wsdl 到 java 转换机制)
有人可以为此提供一些指示吗?
我正在通过SSL连接到Web服务.我导入了证书并将其添加到java密钥库中.然后我使用wsdl2java为Web服务创建了客户端存根.
当我在程序中使用它并尝试调用服务时,它会抛出follownig(异常的一部分)
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.neethi.Constants.isPolicyElement(Ljavax/xml/namespace/QName;)Z
at org.apache.axis2.util.PolicyUtil.getPolicyChildren(PolicyUtil.java:287)
at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:157)
at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:857)
.
.
.
Run Code Online (Sandbox Code Playgroud)
我的代码有点像这样
public static void main(String[] args) {
//generated by wsdl2java
Clientstub stub = new ClientStub(endpoint);
.
.
//req is the passed parameter
stub.requestServic(req);
Run Code Online (Sandbox Code Playgroud)
}
我想我必须导入一些安全策略.如果有的话可以帮助我(任何教程或指示).
提前致谢
问题:为什么Axis 2看不到Java home的位置?我设置错了吗?
简介:我正在尝试使用带有soapUI的Axis 2从我的Mac上的wsdl生成Java对象.但是,我收到错误"你必须在运行Axis2 Script之前设置JAVA_HOME变量."
如果我输入echo $JAVA_HOME命令行,它说
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
我已经导航到JavaVirtualMachines文件夹,jdk确实在那里.
我也编辑了〜/ .bash_profile来说
export JAVA_HOME = $(/ usr/libexec/java_home)
简短问题:
我可以以某种方式绑定wsdl:port名称以在服务中生成自定义Java字段名称吗?
长问题:我有一个wsdl这样的部分:
<wsdl:service name="123xxx">
<wsdl:port name="123xxxHttpSoap11Endpoint" binding="tns:123xxxSoap11Binding">
<soap:address location="..."/>
</wsdl:port>
</wsdl:service>
Run Code Online (Sandbox Code Playgroud)
还有一个maven wsdl2java目标,它使用名称生成服务123xxx(我已经通过调用绑定来修复MyService),并在此服务中生成一个字段:
public class MyService extends Service {
...
public final static QName 123xxxHttpSoap11Endpoint =
new QName("http://new.webservice.namespace", "123xxxHttpSoap11Endpoint");
...
}
Run Code Online (Sandbox Code Playgroud)
这导致编译错误,因为变量不能以Java中的数字开头.我无法找到一种方法以某种方式自定义此生成的代码而不更改原始的wsdl.
那么,有没有办法通过cxf绑定绑定它,就像它与服务本身一样:
<bindings...>
<bindings node="wsdl:definitions/wsdl:service">
<class name="MyService"/>
</bindings>
</bindings>
Run Code Online (Sandbox Code Playgroud)
或者可能还有其他方法来实现这个目标?