我正在使用简单的Web服务JAX-WS而不使用任何花哨的工具(不使用CXF或Metro等)
我正在使用JDK 1.6.x提供的内置支持来创建此Web服务(JDK 6中的JAX-WS RI 2.1.6)
我的问题 - 我想在我的网络服务中介绍验证,所以我想我会使用“@SchemaValidation”
尝试导入它 - 但代码无法编译
我的代码快照:
package com.mkyong.ws;
import javax.jws.WebService;
**import com.sun.xml.ws.developer.SchemaValidation;**
@WebService(endpointInterface = "com.mkyong.ws.HelloWorld")
**@SchemaValidation()**
public class HelloWorldImpl implements HelloWorld{
编译时我得到了例外:
javac com\mkyong\ws\HelloWorldImpl.java
com\mkyong\ws\HelloWorldImpl.java:3: package com.sun.xml.ws.developer does not exist
import com.sun.xml.ws.developer.SchemaValidation;
^
com\mkyong\ws\HelloWorldImpl.java:8: cannot find symbol
symbol: class SchemaValidation
@SchemaValidation()
^
2 errors
所以我的问题是: 我们可以不使用这个注释与JDK1.6实现RI吗? 我是否需要在类路径中导入任何特殊的jar? 谢谢, 萨蒂什南比亚
答案 0 :(得分:1)
根据JarFinder的说法:
http://www.jarfinder.com/index.php/java/info/com.sun.xml.ws.developer.SchemaValidation
编辑 - 我不知道该注释的用途是什么,但是:
Unmarshaller
类来验证XML有效负载。看看Unmarshaller.setSchema()
,我也有一些例子,请告诉我你是否需要它们。 com.sun.xml...
)答案 1 :(得分:0)
尝试考虑使用wsdl。在wsdl中 您可以添加所有类型的验证。 wsdl中的验证规则与您用于实现Web服务的语言无关
答案 2 :(得分:0)
如果您希望使用JDK附带的注释,请使用服务实现bean上的@SchemaValidation
包中的com.sun.xml.internal.ws.developer.SchemaValidation
。我必须注意到,我已经看过至少两个人在使用此包中的注释时遇到问题的情况。
您尝试使用的注释与com.sun.xml.ws.developer.SchemaValidation
包中的glassfish的JAX-WS RI捆绑在一起,因此如果您想要使用它,则需要将其包含在项目的类路径中< / p>