问题标签 [java-ws]

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.

0 投票
1 回答
95 浏览

java - 列出 JAR 文件和相关路径的 Java 命令(类似于 Ruby 的 gem list -d)

Java TM API for XML Web Services提到使用 Java 认可的标准覆盖机制来替换 2 个 JAR 文件(jaxws-api.jar 和 jaxb-api.jar)来替换 JDK 6 标准版本中包含的文件。

是否有一个控制台命令可以证明这些 JAR 正在被使用,而不是“官方”发行版中包含的那些?理想情况下,它将列出 JAR 名称和目录。

0 投票
1 回答
12205 浏览

php - Java Webservice Client UsernameToken 等价于 PHP

我在 PHP 中构建了一个使用 UsernameToken 作为身份验证机制的 Web 服务。我有可以访问此 Web 服务的 PHP 客户端代码。现在我需要在 Java 中执行此操作。也许你可以帮助我!

可以使用以下 php 代码访问此服务:

这些值被解析到这个 Soap 头中。

使用此代码,我可以毫无问题地访问 Web 服务。现在我需要在 Java 中执行此操作。

我已经创建了必要的文件,实现了一个处理程序来添加一个带有 UsernameToken 的肥皂头。但是当我尝试访问 WS 时,我总是会收到“未授权”错误。我认为在创建 passdigest 或 nonce 条目时我遗漏了一些东西。

这是我计算它们的方法:

创建soap标头时将使用这些值:

这是生成的肥皂标题的样子:

有人看到我做错了吗?

0 投票
2 回答
4589 浏览

java - 如何让 JAXB2 发出 CamelCase 绑定?

我正在使用 jaxws-maven-plugin 的wsimport目标从 WSDL 生成 Java 类。开箱即用,这会从 XML 模式生成可怕的类和方法;例如,来自名为 MY_OBJECT 的 XML 元素的名为 MYOBJECT 的类。

我发现我可以使用外部文件自定义我的 JAXB2 绑定;这对于少数类和方法是可以接受的,但是在这种情况下手动命名所有内容的开销是不可取的。

一些搜索发现了对XJC CamelCase Always插件的引用,但这似乎没有维护,并且大多数链接都是 404。不愿意放弃,我确实找到了一个似乎提供此功能的驼峰式Maven 工件,但我不确定如何配置它以便 jaxws-maven-plugin 使用它。

如何在不手动指定所有 CamelCase 绑定的情况下获得它们?

0 投票
0 回答
910 浏览

wcf - Java 客户端到 WCF Web 服务 - 删除 2d 数组参数的第一个元素

更新

我已经发布了由 java WCF 客户端生成的肥皂。WCF 工作正常。还发布了来自用于生成两个客户端的 WSDL 方法的消息模式。java 客户端的一个潜在用途是它看起来应该为外部数组使用 ArrayOfArrayOfRequestParameter 而不是 ArrayOfRequestParameter。

客户端由似乎运行 wsimport 实用程序的 eclispe 生成。在java端,我可以看到参数requests在requests[0]和requests[1]中都有2个元素,但是服务器在requests[0]中得到一个空数组,在requests[1]中得到2个元素。我猜这与数组边界的解释方式有关——也许我可以在 WCF 数据合同中设置一些属性?

该方法的签名如下:

这是 RequestParameter 的数据协定:

这是网络服务配置

这是java客户端生成的soap请求:

这是适用于服务器的 WCF 客户端的肥皂。

这是定义函数消息的 wsdl 片段

0 投票
2 回答
2859 浏览

java - Java Web 服务的持久单例对象

早上好。

我目前正在开发一个 Java Web 服务项目,该项目部署在 Apache Tomcat 7 服务器上。为了项目的需要,我需要在内存中维护一个全局(在 WS 线程中,由每个请求创建)对象。因此,我尝试按如下方式实现单例设计模式:

我知道每次完成请求时,都会在我的 Web 上创建一个新线程——服务类(对象)。我的目标是在所有线程中拥有一个全局 SingletonDesign 对象,该对象在内存中保持活动状态,并且只创建一次。尽管上述设计似乎符合我的预期,但我不确定它是否正确。所以这些是我的问题:

1)为什么SingletonDesign对象的方法需要是静态的?(我试图将它们定义为非静态的,但我的 Singleton 对象未正确初始化)。

2)以上设计见于单例设计模式的维基百科页面。让我困惑的部分是 _instance 字段的初始化,我在其他 Singleton 实现中也看到过。为什么我们需要那个对象?

3)我的对象在服务器停止之前是否保持活动状态?我做了一些测试,似乎它还活着,但我必须 100% 确定。

感谢您的时间与兴趣。

0 投票
0 回答
969 浏览

soap - Java WS文件上传服务

我目前正在开发一个 Java Web 服务项目。它部署在 Apache Tomcat 7 服务器上,我需要提供将文件上传到服务器的服务。此外,Web 服务应该可用于可能不使用 java 的系统。因此,我需要使我的 Web 服务对所有客户端(即 C#、php 等)普遍可用。浏览网页后,我找到了许多解决方案,但没有一个没有说明我如何才能满足上述条件。更具体地说,我遇到了 MTOM 和 Java WS 注释,它们被引用为指定普遍接受的数据结构(例如 Java 的 DataHandler)所必需的。让我发布我的 Web 服务的示例代码:

DataFileServer 是要进行上传操作的类,Web Service 接口如下:

我的问题是,我将如何确保提供给我的 Web 服务的 DataHandler 对象是正确的类型。另外,我可以通过任何方式提高文件上传操作的安全性和性能吗?

谢谢

0 投票
2 回答
1493 浏览

java - 带有 maven 的 JAX-WS 2.2 和 JDK6

我有一个网络服务,我正在使用Endpoint.publish("http://0.0.0.0:8080")

事情是JAX-WS 2.0 and 2.1受到NullPointerException执行时抛出的问题的影响endpoint.stop()

该问题已解决,2.2pom.xml由于java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/String;我使用的是java 1.6.

解决方法是在endorsed文件夹中添加一些库。但我想把它全部打包jar-with-dependencies。一个可执行的java jar。

这么说,如果你能帮助我,我将不胜感激:

或者

编辑:

需求是一个可交付的 jar。一个打包所有依赖项的 jar(到目前为止 2 个,大约 400k jar)。

但是,如果您认为使其工作的唯一方法是添加外部 shell 脚本,请也告诉我。

谢谢!

0 投票
3 回答
4599 浏览

java - Java Web Start 在浏览器中运行时不会将参数传递给应用程序

我无法将参数传递给使用 Java Web Start 启动的 Java 应用程序。我的系统是 Ubuntu Linux 12.04.1 Precise,但同样的情况也发生在 Windows 7 中。两者都使用 Oracle Java 版本 1.7.0_09。

编辑:我正在研究 Web Start 应用程序是否比普通小程序更适合我们的需求。小程序的问题在于,如果用户导航离开我们不想要的页面,它就会关闭。(我们也想看看是否可以通过使用 Web Start 而不是小程序来解决某个安全问题。)我们想从浏览器启动应用程序,以便我们可以将有关经过身份验证的用户的信息传递给Java 应用程序。要求用户登录应用程序似乎是一个糟糕的解决方案(我们可能必须支持 OAuth 之类的东西)。

我有一个示例程序 CommandLineArgs.java:

我把它打包成一个罐子:

然后我有一个名为 cmd.jnlp 的 JNLP 文件:

这是我用于测试的 HTML 页面 cmd.html。div 元素最初是使用 deployjava.js 创建的:deployJava.launchWebStartApplication('https://localhost:9876/cmd.jnlp')

让 https 服务器运行的最快方法是使用 Linux 中常见的 openssl 工具。像这样运行服务器时,当前目录应该包含 cmd.html、cmd.jar 和 cmd.jnlp。

现在,如果我上网,https://localhost:9876/cmd.html我可以运行该应用程序。Java 控制台打开并打印出来。请注意,有 0 个命令行参数。

另一方面,如果我从命令行 ( javaws cmd.jnlp) 运行 javaws,我会在 java 控制台中得到它。现在有 3 个命令行参数。

难道我做错了什么?为什么在浏览器中运行时参数不传递给我的程序?

我发现帖子Java WS 应用程序偶尔忽略参数似乎描述了同样的问题。posdef 的解决方案是从 jnlp 文件中的 jnlp 元素中删除 href 属性,但我没有该属性。

0 投票
4 回答
8300 浏览

c# - Webservice - 操作已超时

我正在从事的项目如下:我有一个加密数据的 Java Web 服务(Des、3Des)。数据是从 C# 应用程序发送的。我想加密/解密大小为 1MB 的文件。我会得到一个例外。

该文件以位格式放入 byte[] 中,并发送到 Java Web 服务以进行加密/解密。在 web 服务完成之后,它需要将加密/解密的数据发回。

对于小文件,我没有问题,但大小为 1MB 或更大的文件在 C# 应用程序中引发异常,错误有以下消息: WebException was unhandled: The operation has timed out

大约在:1min40sec 后抛出此错误

我在 StackOverflow 上阅读过不同的帖子,但它们似乎总是与 WebRequest 和 WebResponse 一起使用。我没有使用它,我用来调用我的网络服务的代码是:

有没有人建议我可以做些什么来解决这个问题?

编辑 试图增加 app.config 文件中的会话超时,如:

在此先感谢马丁

0 投票
1 回答
13582 浏览

maven - 不同目录中的 XSD 和 WSDL

在我的工作中使用 jaxws-maven-plugin 进行代码生成。我有两个项目分别是“普通”和“客户”。结构大致如下:

如何使用项目“common”中的 xsd 从项目“client”中的 wsdl 生成类?

pom.xml: