问题标签 [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 - jax-ws/wsimport 生成带有 void 返回的 WebMethod - 相同的 Request/ResponseWrapper
我正在使用客户端的 WSDL 文件,该文件对输入和输出消息使用相同的元素定义,但我无法让 JAX-WS/JAXB 解组响应。
出于某种原因,由 wsimport 生成的代码返回 void,并且在收到响应时似乎没有更新 INOUT 参数。
当我调用 时port.request( paramOne, paramTwo, requestList )
,我可以看到 SOAP 请求已发送到服务器,该服务器以有效的 SOAP 响应进行响应:
但是,当我在调试模式下运行我的应用程序时,我可以RequestType
在调试器变量视图中看到每个实例,但是因为RequestsType
有一个<xsd:choice>
with RequestData
or ResponseData
,后者是 null 并且RequestData
我提供了。
我已经在其他项目中成功使用了 JAX-WS,但在这些情况下,它生成的代码具有以@WebResult
WebResult 命名的非 void 返回类型。在这个项目中,我认为我没有得到 WebResult,因为 JAX-WS 已经决定请求和响应类型是相同的,并且它可以重用相同的对象 - 但是我如何让它使用来自回复?
java - 如何告诉 wsimport 使用代理异常 url
我需要连接到内部 Intranet Web 服务。我的公司使用代理服务器访问 Internet,但 Intranet 站点不通过代理。我可以在 IE 和 Firefox 中导航到 WSDL,但我必须将地址添加到两个浏览器中的代理例外列表中。
当我使用 wsimport 时,由于代理服务器,我无法获取 WSDL。添加或省略 -httpproxy 参数会给我一个错误“无法通过代理隧道”所以我猜这不是我需要这样做的方式。
有谁知道我可以告诉 wsimport 忽略此 url 的代理服务器的方法吗?
尼尔
java - 对 Web 服务的困惑
我们有一些现有的 Java 代码在 Tomcat 服务器上运行,我们希望允许另一台机器上的代码执行,因此我们正在研究 Web 服务。我是网络服务的新手,我想我可能在这里做错了什么。
我遵循了一些关于如何在 Tomcat 中部署 JAX-WS Web 服务的在线教程。我创建了一个 Web 服务类并使用 @WebService 对其进行注释,编写了一个 web.xml 和 sun-jaxws.xml 文件,将这些文件(加上 JAX-WS jar 文件)打包到一个 .war 文件中,并将其部署到 Tomcat . 这似乎有效,因为我可以在指向 Tomcat 的浏览器中加载 WSDL 文件。
这是我遇到问题的网络服务客户端。首先,服务器端有现有的类可以映射到数据库中。我们希望允许客户端使用相同的现有类并从中创建实例,调用 Web 服务,然后将对象存储到数据库中。但是,当我对服务器的 WSDL 文件运行 wsimport 命令时,它生成了一堆 Java 类,其中很多与我们现有的类相似。我想我们必须使用那些而不是我们现有的类?代码重用就这么多,除非我很困惑,这是很有可能的。
所以现在我已经使用 wsimport 生成的那些类编写了客户端。但是我遇到了编译错误。我们现有 Java 类中的一些字段是 java.net.InetAddress 类型的。但由于某种原因,wsimport 生成了自己的 InetAddress 类,它看起来是这样的:
是的,这只是一堂课,里面什么都没有!所以我说的很多编译错误:
我正在尝试创建一个 java.net.InetAddress,但它希望我使用由 wsimport 生成的空类。我一定在这里做错了什么。请赐教。
jaxb - WSImport 为多个 Dynamics CRM 4.0 WSDL 生成冲突的 XMLType
我目前正在使用 Dynamics CRM 4.0 网络服务。Java/JAX-WS
我做的第一件事是根据 web 服务的 WSDL使用 wsimport 生成正确的类。在生成类时,我遇到了一些错误:
第 979 行告诉我们:
第 12274 行给了我们:
两个部分都在同一个命名空间中。两者都将作为 RetrieveResponse.class 生成,因此它们正在碰撞。我找到了这个问题的解决方案,它是 JAX-B 绑定 xml 文件:
这有效(不确定这是否是正确的方法..?)..
因此,在此之后,我成功地创建了一些对 web 服务的调用,这太棒了!
现在问题来了:动态 crm 中的一些业务实体使用类Picklist。可以使用元数据服务查询此类实体:http: //msdn.microsoft.com/en-us/library/bb890248.aspx
所以接下来我要做的就是再次为元数据服务生成类,基于它的 WSDL。生成的类的结果与我们不同。例如,它生成一个类“com.microsoft.schemas.crm._2007.webservices.ExecuteResponse”。但是这个类也存在于 CrmService 生成的类的完全相同的包中。两者的区别在于:
元数据服务执行响应:
CrmService 执行响应:
现在这个类只是一个例子(另一个例子是CrmAuthenticationToken),它几乎是另一个类的完全相同的副本。为了能够使用相同的类,我在 CrmService 类中添加了一个包后缀(显示为前缀.)。所以现在当我尝试调用 CrmService 时,我得到以下异常:
我个人认为他们将具有相同名称的不同类放在同一个包结构中很奇怪。这意味着您永远不能同时使用 2 个 Web 服务。
这是微软的一个 WSimport 错误还是我的一个愚蠢的错误?希望有人可以帮助我解决这个问题!
谢谢你的时间!
web-services - wsimport giving parse error
I am getting strange parsing error when I try to import a WSDL using wsimport
.
Error:-
I checked the WSDL and I am also surprised the first element of it is not
But rather:
Could this be the problem? The web service is external, so I dont have any control over the WSDL. One thing I know is that it is generated by JAX-WS 2.1.5. Is it a customized WSDL that my wsimport tool is not able to understand? If yes please tell me how to resolve this problem. Thanks.
web-services - 无法使用 wsgen 生成 Web 服务客户端
原帖在这里
我有一个由 Jax WS 2.1.5 创建并作为 HTTPS 服务公开的第三方 Web 服务(WSDL:- https://somedomain.com/location/soap/locationfinderservice?wsdl)我正在尝试使用创建客户端wsimport。我正在使用 jdk1.6.0_04 以实现兼容性(我切换了我在上一篇文章中解释过的 JDK 版本)现在我收到了新错误
问题是https://schemas.xmlsoap.org/wsdl/不存在。在这种情况下如何生成客户端存根?
java - 使用文档/文字格式从 WSDL 生成 Web 服务
我无法通过 wsimport 从 WSDL 生成 WS。
WSDL 是 TMDD v3.0 标准规范(WSDL 和相关的 XSD 文件可以在这里找到)
根据IBM 的这篇文章, WSDL 似乎是文档/文字格式。
为了编译 WSDL,我创建了一些绑定/调整,但是我遇到了这个错误(它不会生成方法,因为操作有多个部分):
为简化起见,这是 WSDL 的精简版本,只有有趣的操作定义
绑定文件:
调用 wsimport 的命令行如下:
我该怎么做才能正确创建“DlFullEventUpdateSubscription”操作?是否有任何替代方法可以生成 Java Web 服务?我不能修改操作定义,因为那不符合标准。
更新。解决方案
我设法通过修改 WSDL 使其工作,因此消息的每个部分都分配给标题和正文:
java - wsimport 从 wsdl 生成空类 (pojos)
环境:NetBeans 7.1.2 glassfish 3.1.2
我编写了一个 Web 服务,其方法返回 pojos。但是,当我在 IDE 中创建 WebService 引用(或使用 wsimport 手动创建)时,为 pojos 生成的类是空的。以下非常简单的 Web 服务演示了该问题。
网络服务类
它返回的 pojo
当我创建 Web 服务引用时,生成的类得到以下信息:
我需要做什么才能使生成的 Pojo 版本包含正确的信息?
java - 如何包含打包的 WSDL 以与使用 wsimport 生成的 Java 类一起使用?
我来自 C#,所以我意识到我不能指望 Java 中有很多(很棒的)可用性特性和功能,但是我最近有点投入到这个 Java 项目中,我简直想不通这个出来。在 C# / .NET 中,制作 Web 服务代理类和生成的数据合同是件大事,但出于某种原因,Web 服务的 Java 实现对我来说似乎并不正确。
这是交易...
我使用 wsimport 从 .wsdl 文件创建生成的 .java 文件。例如...
我注意到这个硬编码(键入那个短语几乎让我刚刚呕吐)“wsdlLocation”作为 wsdl 的当前位置(“C:\Users\ME\etc\wsdl\MyWSDL.wsdl”)。所以我把它拿出来:
现在,当我实例化生成的服务时......
我得到一个错误。类似于 "can't find file C:\blahblah\Temp\NULL" 的内容。好的...回到绘图板。在对此进行了一些调查之后,我在 Stack Overflow 上发现了一篇关于使用“classpath:META-INF/WSDL.wsdl”作为 wsdl 位置的帖子。
错误!
奇怪的是,Stack Overflow 上的帖子被标记为答案。我想在过去的两年中,可能有相当多的数量已经改变到不再支持“类路径:”的程度,或者有另一种方法可以做到这一点,但我无法弄清楚/找到答案.
好的,所以我有几个需要回答的问题之一(提前谢谢!!!!我要疯了!)。
有没有办法让它在运行时不需要 WSDL?对于它的价值,我认为当我实例化对象时它需要它是 BS。有什么方法可以抑制这个要求?也许如果我使用不同的工具......?
如果此代码无法在运行时不需要 WSDL,我如何让它从包中获取此 WSDL?我在 wsdllocation 参数中添加了什么以使其从 JAR 文件中加载 WSDL?
java - 如何让 wsimport 生成构造函数?
wsimport
生成没有参数化构造函数的源代码。因此,如果 bean 有许多属性,则需要手动调用所有 setter:
像这样编写代码更具可读性和方便性:
那么,有什么办法可以wsimport
完成这项工作吗?(我正在使用 maven wsimport 插件)