Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CXF简单前端中的TargetNamespace_Java_Web Services_Soap_Cxf - Fatal编程技术网

Java CXF简单前端中的TargetNamespace

Java CXF简单前端中的TargetNamespace,java,web-services,soap,cxf,Java,Web Services,Soap,Cxf,我使用的是CXF simple frontend,它只使用XML配置而不是注释来创建soap web服务 现在我创建了一个服务: <simple:server id="locationSettingService" serviceClass="com.my.own.webservice" address="/LocationSettingWebService"> <simple:serviceBean>

我使用的是CXF simple frontend,它只使用XML配置而不是注释来创建soap web服务

现在我创建了一个服务:

<simple:server id="locationSettingService"
        serviceClass="com.my.own.webservice"
        address="/LocationSettingWebService">
        <simple:serviceBean>
            <bean
                class="com.my.own.webserviceImpl">

            </bean>
        </simple:serviceBean>
        <simple:inInterceptors>
            <ref bean="addressingHandler" />
            <ref bean="authHandler" />
        </simple:inInterceptors>
        <simple:dataBinding>
            <bean class="org.apache.cxf.aegis.databinding.AegisDatabinding" />
        </simple:dataBinding>
    </simple:server>

部署后,wsdl为:

<wsdl:definitions name="LocationSettingWebService" ... targetNamespace="http://own.my.com/">

它使用targetNamespace
http://own.my.com/

我的问题是我不想在上述名称空间的末尾加正斜杠,我只需要
http://own.my.com
作为我的targetNamespace。因此我想使用简单前端修改名称空间。有什么帮助吗

更新: 在搜索了很长时间并尝试了数百种解决方法之后。我发现了问题所在,CXF命名空间生成技术比XFire早了一步


转到。并查找XFire兼容性,但我尝试了很多方法,但没有成功摆脱“/”。请帮助人们,我甚至从我的小苏的名声中打开了赏金。多亏了apache的邮件列表和非常慷慨的人们,我终于解决了这个问题

我只需要添加FactoryBean,第一个配置是
XFireCompatibilityServiceConfiguration
,因为首先返回配置的是规则

  <simple:server id="locationSettingService"
        serviceClass="com.my.own.webservice"
        address="/LocationSettingWebService">
<simple:serviceFactory>
            <ref bean="aegisCompatibilityFactoryBean"/>
        </simple:serviceFactory>
        <simple:serviceBean>
            <bean
                class="com.my.own.webserviceImpl">

            </bean>
        </simple:serviceBean>
        <simple:inInterceptors>
            <ref bean="addressingHandler" />
            <ref bean="authHandler" />
        </simple:inInterceptors>
        <simple:dataBinding>
            <bean class="org.apache.cxf.aegis.databinding.AegisDatabinding" />
        </simple:dataBinding>
    </simple:server>

那工厂本身呢

<bean id="aegisCompatibilityFactoryBean"
        class="org.apache.cxf.service.factory.ReflectionServiceFactoryBean" scope="prototype">
        <property name="serviceConfigurations">
            <list>
                <bean
                    class="org.apache.cxf.aegis.databinding.XFireCompatibilityServiceConfiguration">
                </bean>
                <bean class="org.apache.cxf.service.factory.DefaultServiceConfiguration" />

            </list>
        </property>
    </bean>

如果您将此bean用于多个web服务,请确保其范围是原型