gpt4 book ai didi

java - 如何使用 JAX-WS webfault

转载 作者:搜寻专家 更新时间:2023-10-30 21:04:30 25 4
gpt4 key购买 nike

我已经编写了一个网络服务并试图抛出我的自定义异常,但我收到错误请帮助我解决它。

import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService(name = "WebService")
public class WebServiceTest {
public String sayHello(String name) throws InvalidInputException {
throw new InvalidInputException("I am testing", null);
}
public static void main(String[] args) {
WebServiceTest server = new WebServiceTest();
Endpoint endpoint = Endpoint.publish(
"http://localhost:9191/webServiceTest", server);
}
}


import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlType;

@XmlType(name = "InputMessageValidationFaultType")
public class FaultBean {

@XmlAttribute
protected String msg;

public String getMsg() {
return msg;
}

public void setMsg(String value) {
this.msg = value;
}

}


import javax.xml.ws.WebFault;

@WebFault(faultBean = "mytest.com.inc.FaultBean")
public class InvalidInputException extends Exception {

private static final long serialVersionUID = 1L;

private FaultBean faultBean;

public InvalidInputException() {
super();
}

public InvalidInputException(String message, FaultBean faultBean,
Throwable cause) {
super(message, cause);
this.faultBean = faultBean;
}

public InvalidInputException(String message, FaultBean faultBean) {
super(message);
this.faultBean = faultBean;
}

public FaultBean getFaultInfo() {
return faultBean;
}
}

错误信息线程“main”中的异常 java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/String; 在 com.sun.xml.ws.model.RuntimeModeler.processExceptions (RuntimeModeler.java:1162) 在 com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:898) 在 com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:666) 在 com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:420) 在 com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:254) 在 com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:338) 在 com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:201) 在 com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:505) 在 com.sun.xml.ws.transport.http.server.EndpointImpl.createEndpoint(EndpointImpl.java:257) 在 com.sun.xml.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:181) 在 com.sun.xml.ws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:123) 在 javax.xml.ws.Endpoint.publish(Endpoint.java:170) 在 mytest.com.inc.WebServiceTest.main(WebServiceTest.java:13)

最佳答案

上次我看到这个错误,是由于使用的 JAX-WS 版本(2.1.x 和 2.2.x)不匹配所致您可能正在针对 2.1.x 版本进行编译,但针对 2.2.x 运行,或者相反。

请记住,JDK 6 包含 JAX-WS 的 2.1.x 版本,因此您可能必须使用认可的库机制来强制使用 2.2.x

关于java - 如何使用 JAX-WS webfault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6606512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com