有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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吗? 谢谢 萨蒂什


共 (3) 个答案

  1. # 1 楼答案

    如果希望使用JDK附带的注释,请使用服务实现bean上的@SchemaValidation包中的com.sun.xml.internal.ws.developer.SchemaValidation。但我必须指出,我至少见过两个例子,人们在使用这个包中的注释时遇到了问题

    您试图使用的注释与glassfish的JAX-WS RI捆绑在com.sun.xml.ws.developer.SchemaValidation包中,因此如果您想使用它,则需要将其包含在项目的类路径中

  2. # 2 楼答案

    根据JarFinder的说法:

    http://www.jarfinder.com/index.php/java/info/com.sun.xml.ws.developer.SchemaValidation

    • jaxws-rt-2.1.4。罐子
    • jaxws-rt-2.1.3。罐子

    编辑-我不知道该注释的确切用途,但:

    1. 可以使用JAXB(因此仅使用JDK1.6)使用Unmarshaller类来验证XML有效负载。看看Unmarshaller.setSchema(),我也有一些例子,如果你需要,请告诉我
    2. 从注释的名称空间来看,它更像是内部的东西(com.sun.xml...
  3. # 3 楼答案

    尝试考虑使用WSDL。在wsdl中 您可以添加各种验证。 wsdl中的验证规则与实现Web服务所使用的语言无关