首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对Apache CXF创建的Wsdl施加限制

对Apache CXF创建的Wsdl施加限制
EN

Stack Overflow用户
提问于 2013-04-04 03:35:55
回答 2查看 1.1K关注 0票数 1

我目前正在进行一个开发web服务的项目,我们选择了Apache CXF作为首选技术。我们正在使用一种契约-最后方法(我们正在对我们的服务进行编码,并允许CXF为我们生成wsdl )。虽然我们能够使用Java-WS注解根据需要设置某些字段,但我们无法弄清楚如何对wsdl中的字符串元素施加字符限制。虽然这并不是什么大的交易(我们与我们合作的供应商关系相当密切,所以暂时达成一个临时协议,不让我们收到的请求超过上述长度就足够了),但我们好奇的是,有一种方法可以做到这一点。

有没有办法用CFX对输入字符串施加类似于20个字符的限制?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-04 03:53:24

这不是JAXB提供的东西。但是,有一个项目已经派生了jaxb-ri,它添加了对此的支持:

https://github.com/whummer/jaxb-facets

如果不需要在WSDL中反映facet,那么只需将验证作为JAXB的setter方法的一部分进行即可。

代码语言:javascript
复制
setName(String s) {
   if (s.length() > 20) thrown new Exception(....);
   name = s;
}

在解组之后,JAXB bean还可以响应一些事件,您可以在这些事件中进行验证。请参阅javadoc:http://docs.oracle.com/javase/6/docs/api/javax/xml/bind/Unmarshaller.html中的afterUnmarshall描述

票数 2
EN

Stack Overflow用户

发布于 2013-04-04 06:33:10

当你对webservice采取自下而上的方法时(即先执行,再执行WSDL ),你就会受到When服务引擎对数据类型的限制。

但是,如果您使用自顶向下的方法(首先使用WSDL,然后执行),则可以消除此类问题,但需要知道如何开发WSDL和应用方面(限制)。

幸运的是,CXF两者都支持,您可以尝试一下wsdl2java

还要记住,添加一个facet并不意味着它将由the服务引擎强制执行。大多数引擎只是忽略它,尽管我对CXF不是很确定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15796429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档