当前位置: 首页 > 面试题库 >

使用Spring WS发布静态WSDL和相关的XSD模式

蔡辰钊
2023-03-14
问题内容

我有一个模块,其中有我的XSD模式,其中一个模式可以使用模式位置内的相对路径引用另一个模式:

<xs:import namespace="http://my.namespace.org" schemaLocation="../mypackage/my.xsd"/>

在这里,我还使用xjc从这些xsd模式生成Jaxb bean。

现在,我有了一个使用spring-ws(2.0.4)实现我的Web服务的模块。我想使用 静态WSDL
并将其与xsd模式一起发布,其中模式位置将转换为URL,例如“ http://myerver.url.com/my.xsd”。

问题是如何优雅地实现这一目标?

(或者将XSD组合为一个模式,然后将其组合为WSDL)

(从理论上讲,我可以使用脚本转换这些XSD,并将它们添加到资源(xsd和wsdl)到(弹簧调度程序)servlet中,但是在我看来,这并不是很舒服


问题答案:

Spring
Web服务实际上有一种优雅的方法。您需要做的就是SimpleXsdSchemabean定义xml文件中定义一个具有正确ID(将用作不带.xsd的xsd名称)的bean,如下所示

<bean id="my" 
        class="org.springframework.xml.xsd.SimpleXsdSchema">
        <property 
            name="xsd" 
            value="/mypackage/my.xsd">
        </property>
</bean>

在以下链接中可以找到更多信息(包括示例): Spring Web
Service中带有导入XML模式的静态WSDL。



 类似资料:
  • 首选框架是Spring Web Service,但也欢迎其他解决方案。 问候,

  • 我有一个JAX-WS注释的Web服务,当我将其部署到WildFly 8.1.0 Final中时,我有如下内容: 当我想要这样的东西时: 因此,基本上,我希望WildFly/JAX-WS将一些类型放在一个单独的XSD模式文件中,而不是仅仅在WSDL文件中显示它们。 我可以通过一些注释或一些配置文件来执行此操作吗?

  • 我正在使用JAX-WS开发WebService(我在jaxws maven插件上使用wsimport目标)。我编写了一个导入XSD模式的WSDL。 此外,我还生成了web服务类,并创建了endpoint和all。到目前为止,一切都很顺利。当我在Tomcat7上运行服务时,一切都正常。我可以从以下位置访问浏览器中的wsdl: 但是我无法访问xsd模式。问题是在这个wsdl: 当然,在生成类的过程中,

  • 这两个函数是否重载

  • 本文向大家介绍java使用静态关键字实现单例模式,包括了java使用静态关键字实现单例模式的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了使用静态关键字实现单例模式的具体代码,供大家参考,具体内容如下 单例模式:只能获得某个类的唯一一个实例 单例模式,不管什么时间点得到的对象都是同一个对象 看下面代码: 将构造方法私有,以便实现外部无法使用new进行实例化的效果,达到任何时候其实都是同一

  • 我希望根据保存WSDL的环境更改它们的。例如: production: