无法在其他元数据文件中找到wsdlLocation

时间:2012-08-20 10:43:23

标签: jboss wsdl jax-ws

我有使用注释配置的jax-ws web服务(jboss实现)。

@WebService([...],wsdlLocation =“/ WWE-INF / swdl / service.wsdl”)

wsld文件包含在war文件中。 war文件包含在ear文件中,该文件部署在JBoss上(版本:5.0.1.GA)。

在部署期间,我收到如下错误消息: “无法在其他元数据文件中找到/WEB-INF/wsdl/service.wsdl!”

我试图把文件放在很多地方: - 战争文件的META-INF文件夹, - 耳朵文件的META-INF文件夹, - war文件的类路径,

但我没有帮助。

任何人都知道我应该如何配置它?

2 个答案:

答案 0 :(得分:2)

我有同样的问题,我这样解决了:

@WebService(targetNamespace="http://my.app.it/", wsdlLocation = "WEB-INF/wsdl/additional.wsdl")

(WEB-INF不以斜线开头)

答案 1 :(得分:0)

为了解决这个问题,我将WSDL放入了我从生成的存根中创建的jar文件中。然后设置wsdllocation,一切都很好。

我的蚂蚁目标的例子:

<target name="genclients" depends="clean, -createdirs">
    <wsimport
        fork="true"
        xnocompile="true"
        wsdl="${src.resource.dir}\${wsdl.name}"
        wsdllocation="/resources/${wsdl.name}"
        sourcedestdir="${src.generated.dir}"
        verbose="true"
        destdir="${target.classes.dir}"
        keep="true"
        extension="true"
        debug="true"
        package="com.fedex.ship.stub"
        xadditionalHeaders="true"
        binding="${basedir}/binding.xml"
        >
        <arg line="-mark-generated"/>
    </wsimport>

    <javac srcdir="${src.generated.dir}" destdir="${target.classes.dir}" includeantruntime="false" source="1.6" target="1.6" debug="true" deprecation="false" optimize="false" failonerror="true">
        <include name="**/*.java"/>
    </javac>

    <copy todir="${target.classes.dir}" preservelastmodified="true" overwrite="true">
      <fileset dir="${src.dir}" >
        <include name="**/*.wsdl"/>
        <include name="**/*.xsd"/>
      </fileset>
    </copy>

    <pathconvert property="manifest.classpath" pathsep=" ">
        <mapper>
            <chainedmapper>
                <flattenmapper />
            </chainedmapper>
        </mapper>
        <path>
        </path>
    </pathconvert>

    <mkdir dir="${target.classes.dir}/META-INF"/>
    <manifest file="${target.classes.dir}/META-INF/manifest.mf">
        <attribute name="Built-By" value="${user.name}"/>
        <attribute name="Class-Path" value="${manifest.classpath}"/>
    </manifest>

    <jar jarfile="${target.jar.dir}/${jar.name}" basedir="${target.classes.dir}" manifest="${target.classes.dir}/META-INF/manifest.mf" excludes=".settings,**/.svn"/>

    <!--
    <delete failonerror="false" includeEmptyDirs="true">
        <fileset dir="${target.classes.dir}"/>
    </delete>
    -->

</target>