java Web服务验证输入
我正在玩一个简单的Web服务JAX-WS,不使用任何花哨的工具(不使用CXF或Metro等)
我使用JDK1.6提供的内置支持。x创建此web服务(JDK 6中的JAX-WS RI 2.1.6)
我的问题——我想在我的web服务中引入验证,所以我想使用“@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.实施国际扶轮? 我需要在我的类路径中导入任何特殊的jar吗? 谢谢 萨蒂什
# 1 楼答案
如果希望使用JDK附带的注释,请使用服务实现bean上的
@SchemaValidation
包中的com.sun.xml.internal.ws.developer.SchemaValidation
。但我必须指出,我至少见过两个例子,人们在使用这个包中的注释时遇到了问题您试图使用的注释与glassfish的JAX-WS RI捆绑在
com.sun.xml.ws.developer.SchemaValidation
包中,因此如果您想使用它,则需要将其包含在项目的类路径中# 2 楼答案
根据JarFinder的说法:
http://www.jarfinder.com/index.php/java/info/com.sun.xml.ws.developer.SchemaValidation
编辑-我不知道该注释的确切用途,但:
Unmarshaller
类来验证XML有效负载。看看Unmarshaller.setSchema()
,我也有一些例子,如果你需要,请告诉我李>com.sun.xml...
)# 3 楼答案
尝试考虑使用WSDL。在wsdl中 您可以添加各种验证。 wsdl中的验证规则与实现Web服务所使用的语言无关