2

我有配置了注释的 jax-ws Web 服务(jboss 实现)。

@WebService([...], wsdlLocation = "/WEB-INF/wsdl/service.wsdl")

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

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

我尝试将文件放在很多地方:-war 文件的 META-INF 文件夹,-ear 文件的 META-INF 文件夹,-war 文件的类路径,

但我没有帮助。

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

4

2 回答 2

2

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

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

(WEB-INF 不以斜线开头)

于 2014-03-05T15:06:23.317 回答
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>
于 2012-09-07T14:45:47.763 回答