Validator验证框架的内置标准验证
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JBoss4.2及JBoss5.0部署jax-ws2.0/2.1WebServices 一,部署jax-ws 2.0/2.1 POJO Web Service到JBoss4.2.2.GA
1:必须为你的POJO Web Service定义一个Servlet,并定义service的endpoint。
这意味着必须修改/增加两个文件:WEB-INF/web.xml;WEB-INF/sun-jaxws.xml (附文后)
2:最好将所需的jax-ws jars放到WEN-INF/lib里,免得将这些jar拷贝来拷贝去。
本人曾试了半天,拷来拷去,反正是搞不定。最后还是一古脑儿索性全放到WEB-
INF/lib里,倒是爽快:
WEB-INF/lib/jaxws-rt.jar
WEB-INF/lib/jaxws-tools.jar
WEB-INF/lib/log4j-1.2.8.jar
WEB-INF/lib/saaj-api.jar
WEB-INF/lib/saaj-impl.jar
WEB-INF/lib/sjsxp.jar
WEB-INF/lib/stax-ex.jar
WEB-INF/lib/streambuffer.jar
WEB-INF/lib/sxalan.jar
别问我到底哪个是哪个,都是干什么的。
二,部署jax-ws 2.0/2.1 POJO Web Service到JBoss5.0.0.GA
好像是去年,JBoss5面世了,根据其Release Note,它是“the final release of the JBoss 5.0 series for th e Java EE™5 codebase that fully complies with the Java EE 5 conformance testing certification requirements.” 但本人的试验结果却
是大失所望:如果将我们的web service打包成war部署到JBoss 5.0上,根本就不工作,问题多去了。为什么同样的 war部署在Glassfish上就运行良好呢?果真是“fully complies with the Java EE 5 ”?看起来并不那么“fully”。
JBoss5.0.0.GA的server classloader搜寻路径发生了一点变化。根据其Release Note的“指示”:“When running under Java 6 you need to manually copy the following libraries from the JBOSS_HOME/client directory to the
JBOSS_HOME/lib/endorsed directory, so that the JAX-WS 2.0 apis supported by JBossWS are used:
jbossws-native-saaj.jar
jbossws-native-jaxrpc.jar
jbossws-native-jaxws.jar
jbossws-native-jaxws-ext.jar ”
这个也无济于事。
最终,还得像部署在JBoss4.2.2.GA上一样进行部署。
总结:
1:将jax-ws 2.0/2.1 POJO web service部署得到JBoss4.2/5.0是一样费劲的。
2:基本上需要两步:一是要定义WEB-INF/web.xml 和 WEB-INF/sun-jaxws.xml;二是
要将所需的相关的 ws libs 放到war的本地classpath上。
3:还发现一个怪现象:@WebService attribute 是否附值与附哪些值,JBoss与Glassfish所由此产生的wsdl内容很不相同。这有点儿头痛。
Why JBoss then? 答案是我儿子的口头禅:“我也不知道!”。
附上相关文件:
{code}
----------------------- service interface: VodOptService ------------------
package com.vodws.service.opt;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import com.vodws.service.GetPersonRequest;
import com.vodws.service.GetPersonResponse;
@WebService
@SOAPBinding(
style = SOAPBinding.Style.DOCUMENT,
use = e.LITERAL,
parameterStyle=SOAPBinding.ParameterStyle.BARE
)
public interface VodOptService {
@WebMethod
@WebResult( name="getPersonResponse",
targetNamespace="/service",
partName="getPersonResponse" )
public GetPersonResponse getPerson( @WebParam(name="getPersonRequest", targetNamespace="/service",