问题标签 [wsimport]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - wsimport - 没有命名空间的导入模式 ==> 名称为“生成”的包
我创建了一个 Web 服务,它有一个 WSDL 导入一个模式(我们称之为 SCHEMA A)文件,其中没有目标命名空间。它定义了自己的类型,但也导入了其他模式。
因此,当创建 JAXB 绑定时,为来自 SCHEMA A 的类型提供的包是“生成的”。对于导入的模式,包很好。有没有办法自定义这个?我的意思是当我使用 -p 时,它会尝试在同一个包中添加所有类型并且存在冲突。
这不是我所期望的。有没有办法将不同的包分配给不同的命名空间......即使该特定架构没有目标命名空间?
理想的情况是找到一种方法来为特定的 SCHEMA A 分配我想要的包。
service - wsimport 尝试通过命名空间解析
wsimport 是否可以忽略 wsdl 中通过 http 链接到某些 XSD 文件并使用 wsdl 文件旁边提供的 XSD 文件的“导入”标签?我知道 svcutil 能够做到这一点。
java - 更改使用 wsimport 生成的 Web 服务客户端上的 URL
我正在尝试为访问 WSDL 描述的 web 服务的 Java 应用程序编写一个模块。源 WSDL 是直接从我认为是 ASP.NET Web 服务下载的;服务 URL 以 .asmx 扩展名结尾,在浏览器中查看服务 URL 会显示一个链接,该链接可用于下载 WSDL。
我的一个关键要求是能够在不重新编译的情况下切换服务 URL。给我的 URL 显然是一个测试服务器,我知道在生产中我会得到一个生产 URL 来使用。我还希望能够自己创建一个模拟服务器进行测试,并保留将来指定新 URL 的能力,而无需在移动服务时重新编译。事实上,我希望安装我们的应用程序能够在不同的 URL 上实例化 Web 服务的多个实例。
但我的概念似乎与 wsimport 工具为我所做的不匹配。按照 f1sh 在此处的回答,我使用以下命令从下载的 WSDL 生成了 Java 代码:
我发现生成的代码具有对我下载的 wsdlFile.wsdl 的硬编码引用,其中包含服务 URL。我们的应用程序不会以通过在运行时编辑 WSDL 文件来配置的方式运行。我需要在构建时将代码编译到我的应用程序中,并且可以在实例化时设置服务 URL。
我不完全确定为什么 WSDL 甚至需要在运行时进行解析;我的理解是 WSDL 提供了足够的信息来生成可以访问 web 服务的代码,所以我不确定它为生成的代码提供了什么而不是服务 URL,我不确定为什么没有提供服务 URL构造函数或可通过生成的 Web 服务类上的方法进行配置。我肯定错过了什么。
这种情况的一般做法是什么?大多数人是否会为他们将要使用的每个单独的 URL 重新生成代码?代码是在运行时生成的吗?我可以使用另一个 WSDL 工具来构建具有可配置 URL 的客户端代码吗?
java - WebService 代理类
我已经编写了一个 java webservice,将它部署在我的 tomcat 上,并通过我的 webbrowser 访问了服务 WSDL,一切看起来都很好。下一步是生成代理类,客户端可以使用它与网站进行通信。这就是我接下来所做的:
假设我的 wsdl 可以通过以下方式访问:http://localhost:8080/testSvc/testSvc?wsdl
使用 wsimport 工具,我使用以下命令生成代理: $>wsimport http://localhost:8080/testSvc/testSvc?wsdl
问题是 localhost:8080 在生成的类中被硬编码,如果我将服务部署在 8080 以外的端口上,则客户端无法访问它,因为客户端仍会尝试访问端口 8080 上的服务。
有没有以端口号不是硬编码的方式开发代理类?这样我们就可以在任何端口上部署服务?
我尝试更新 ENDPOINT_ADDRESS_PROPERTY 但这没有用,因为代码在实例化代理类的实例时失败。它从来没有真正达到我可以覆盖它已经从代理类准备好的 ENDPOINT_ADDRESS 的地步。
maven-2 - 如何在 Maven 中为生成的源创建文件夹?
我必须使用 wsimport 生成源,并且我假设它应该转到 /target/generated-sources/wsimport 而不是 /src/main/java。
问题是 wsimport 需要在执行之前创建目标文件夹并且它失败了。我可以先使用任何 maven 插件创建该目录吗?我可以使用 ant 来完成,但我更喜欢将其保存在 POM 中。
java - 重命名使用 wsimport 生成的所有异常类
当使用 .net wsdl 使用 wsimport 生成我的代码时,我有极长的异常类,例如 [servicename][operationname]FaultFaultFaultMessage。
我知道如何重命名每个异常,但我可以使用 jaxb .xjb 文件一次“模板化”所有异常吗?
java - 如何解决 NetBeans 中的此 wsimport 错误?
我在带有 Java 1.6.0_22 的 Mac OS X 10.6.4 上使用 NetBeans 6.9.1。我有一个通过 JAX-WS 连接到应用程序服务器(GlassFish v3)的 Web 应用程序。在“清理和构建”过程中,调用 wsimport 来导入存储的 WSDL 文件。出于某种原因,我只能在启动 NetBeans 后成功执行一次“清理和构建”。随后的每次尝试都失败并出现此错误:
注意的行是此目标中的“wsimport”指令:
我可以从命令行成功地手动运行 wsimport 行(复制和粘贴)。当我这样做时,NetBeans 会在下一个 Web 服务目标上出错。
To correct this error, I have to close NetBeans and restart. Once I do that, I can once again perform one "Clean and Build" before I'm stuck again.
I only see this problem on my Mac - my NetBeans install on Windows 7 does not have this problem, but I can't find any differences in the configuration that might account for the Mac problems.
It's clear that the error message I'm getting for wsimport is woefully unhelpful. I can't seem to figure out how to get more verbose error messages to figure out what is actually going on. Do you know how I might do that? I'm guessing that a library is being loaded that is causing a conflict, but I don't know where to start in tracking down where that problem is.
Thank you in advance!
java - jax-ws ri 2.2.1 没有为亚马逊 ecs wsdl 文件生成枚举
我正在尝试为以下亚马逊 wsdl 生成工件:
http ://webservices.amazon.com/AWSECommerceService/AWSECommerceService.wsdl
使用以下蚂蚁任务:
但没有为以下元素生成 java 工件,如下所示:
即使生成了所有其他元素,基本上也不会生成枚举。有没有人见过这个问题?我正在使用 jax-ws ri 2.2.1 http://jax-ws.java.net/2.2.1/
谢谢
java - 使用本地 wsdl 文件和绑定文件和 maven 生成 WSDL 的示例 Java 客户端?
有谁知道从本地 WSDL 文件生成 Java 客户端的完整示例,该文件使用自定义 jaxb 绑定并使用 maven 生成(也最好用于 Windows)?
是否建议为此任务使用 wsimport 或 wsdl2java?
java - ObjectFactory 中应该只有一个的两件事情发生冲突
我正在尝试在来自第 3 方的 WSDL 中执行 wsimport(通过 netbeans 6.9.1),但它一直在 JAXB 中生成此错误:
碰撞是关于这两件事:
在messages.xsd 中:
在 service.xsd 中:
我在 stackoverflow 中看到 JAXB 无法处理两个不同元素具有相同名称或名称仅大写不同的情况。但是,在这种情况下,这两个元素实际上应该是相同的(第二个引用第一个)。那么,我能做些什么呢?