通过wsimport执行web服务客户端时出现java异常

通过wsimport执行web服务客户端时出现java异常,java,web-services,jakarta-ee,Java,Web Services,Jakarta Ee,我在跟踪 我创建了这个简单的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; } } 这个简单的服务器: p

我在跟踪

我创建了这个简单的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;
    }
}
这个简单的服务器:

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");
    }
}
当我测试获取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>
解决办法是什么 我对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;
    }
}
编辑后

在环境变量中,确保jdk bin文件夹位于您的路径上。请按照以下说明操作:

该文件夹类似于C:\Program Files\java\jdk1.7.0\U 09\bin

您可以通过打开一个新的命令提示符窗口并键入
java-version
进行测试,如果这样做有效,则bin文件夹位于您的路径上

还要检查
javac-version
是否也可以工作。如果第一个有效,但这一个无效,则可能意味着您的路径上有一个JRE而不是JDK


请执行以下操作:

  • 在Eclipse
    窗口->首选项->安装的JRE
    中,找到您在此处安装的JDK
  • 打开环境属性(右键单击我的计算机上的cick->属性->高级,然后单击环境变量)
  • 在“系统变量”中找到路径变量,然后单击“编辑”
  • 注意,此路径变量是以分号分隔的文件夹列表。找到Java的现有版本并将其删除。然后将JDK的位置追加到末尾,如Eclipse在步骤1中所示,后跟/bin e、 mypathvar;C:\ProgramFiles\Java\jdk1.6.0\U 37\bin

    点击ok,然后打开一个新的命令提示符并键入
    javac-version
    ,它现在应该可以工作了,但您需要打开一个新的命令提示符。如果它不工作,谷歌如何添加java到我的路径变量


    如果你在eclipse中找不到JDK,你可以下载一个(谷歌“下载JDK”)

    你有JAVA\u HOME env变量集吗?如果在命令行上运行wsimport会发生什么?我认为,如果您有JAVA_HOME set,并且路径中有jdk/bin文件夹,那么您应该ok@cowls我怎么知道我有没有?如何在命令行上运行wsimport?我确信jdk正在工作,因为我已经开发android项目2年了。简单地打开命令提示符(Windows键+r,键入cmd,然后按enter键),然后键入wsimport-v,然后按enter键,您应该会看到版本信息。不过,它需要在您的路径上,我认为Eclipse掩盖了这一点,因为你告诉它JDK本身在哪里,我会编辑这个问题,并给你一个CMD命令的打印屏幕。我非常需要帮助,请
    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