[英]java exception when executable web service client by wsimport
I am following This Tutorial 我正在关注本教程
I created this simple web service 我创建了这个简单的Web服务
package com.examples.services;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class HelloWeb {
@WebMethod
public String sayHi(String name) {
return "Hi " + name;
}
}
and this simple server : 和这个简单的服务器:
package com.examples.services;
import javax.xml.ws.Endpoint;
public class Server {
public static void main(String args[]) {
Endpoint.publish("http://localhost:9898/HelloWeb", new HelloWeb());
System.out.println("here we go");
}
}
and when I test to get the WSDL, it works good and I get this xml result: 当我测试以获取WSDL时,它运行良好,并且得到了以下xml结果:
<?xml version="1.0" encoding="UTF-8" ?>
- <!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6.
-->
- <!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6.
-->
- <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://services.examples.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://services.examples.com/" name="HelloWebService">
- <types>
- <xsd:schema>
<xsd:import namespace="http://services.examples.com/" schemaLocation="http://localhost:9898/HelloWeb?xsd=1" />
</xsd:schema>
</types>
- <message name="sayHi">
<part name="parameters" element="tns:sayHi" />
</message>
- <message name="sayHiResponse">
<part name="parameters" element="tns:sayHiResponse" />
</message>
- <portType name="HelloWeb">
- <operation name="sayHi">
<input message="tns:sayHi" />
<output message="tns:sayHiResponse" />
</operation>
</portType>
- <binding name="HelloWebPortBinding" type="tns:HelloWeb">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
- <operation name="sayHi">
<soap:operation soapAction="" />
- <input>
<soap:body use="literal" />
</input>
- <output>
<soap:body use="literal" />
</output>
</operation>
</binding>
- <service name="HelloWebService">
- <port name="HelloWebPort" binding="tns:HelloWebPortBinding">
<soap:address location="http://localhost:9898/HelloWeb" />
</port>
</service>
</definitions>
but when I tried to create a web service client like this: 但是当我尝试创建这样的Web服务客户端时:
<project name="My Web Service Build" default="wsimport">
<target name="wsimport">
<exec executable="wsimport">
<arg line="-keep -s ./src -p com.examples.services.client http://localhost:9898/HelloWeb?wsdl"/>
</exec>
</target>
</project>
I got this exception when running that client: 运行该客户端时出现此异常:
Buildfile: C:\Users\User\workspace\MyWebService\wsbuild.xml
wsimport:
BUILD FAILED
C:\Users\User\workspace\MyWebService\wsbuild.xml:5: Execute failed: java.io.IOException: Cannot run program "wsimport": CreateProcess error=2, The system cannot find the file specified
Total time: 646 milliseconds
what is the solution I am very new to web service 我对Web服务非常陌生的解决方案是什么
In your environment variables make sure the jdk bin folder is on your path. 在您的环境变量中,确保jdk bin文件夹在路径中。 Follow these instructions: http://java.com/en/download/help/path.xml
请遵循以下指示信息: http : //java.com/en/download/help/path.xml
The folder will be something like C:\\Program Files\\java\\jdk1.7.0_09\\bin 该文件夹将类似于C:\\ Program Files \\ java \\ jdk1.7.0_09 \\ bin
You can test by opening a NEW command prompt window and typing java -version
if this works then the bin folder is on your path. 您可以通过打开新的命令提示符窗口并键入
java -version
如果java -version
则bin文件夹位于您的路径上。
Also check that javac -version
also works. 还要检查
javac -version
也可以使用。 If it the first works but this one doesnt it probably means you have a JRE on your path instead of a JDK. 如果第一个成功,但这个没有成功,则可能意味着您的路径上有一个JRE,而不是JDK。
Do the following: 请执行下列操作:
Window->Preferences->Installed JREs
, find the JDK you have installed here. Window->Preferences->Installed JREs
,找到您已在此处安装的JDK。 eg mypathvar;C:\\Program Files\\Java\\jdk1.6.0_37\\bin 例如mypathvar; C:\\ Program Files \\ Java \\ jdk1.6.0_37 \\ bin
hit ok then open a new command prompt and type javac -version
, it should work now but you will need to open a NEW command prompt. 单击“确定”,然后打开一个新的命令提示符,然后键入
javac -version
,它现在应该可以使用,但是您需要打开一个新的命令提示符。 If it doesnt work google how to add java to my path variable. 如果它不起作用谷歌如何将Java添加到我的路径变量。
If you cant find a JDK in eclipse you can always download one (google "download JDK") 如果您无法在Eclipse中找到JDK,则可以随时下载一个(Google“下载JDK”)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.