2

アノテーションで構成された jax-ws Web サービス (jboss 実装) があります。

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

wsld ファイルは war ファイルに含まれています。war ファイルは、JBoss (バージョン: 5.0.1.GA) にデプロイされる ear ファイルに含まれています。

展開中に、「追加のメタデータ ファイルに /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

この問題に対処するために、生成されたスタブから作成した jar ファイルに WSDL を配置しました。次に 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 に答える