我有使用注释配置的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文件的类路径,
但我没有帮助。
任何人都知道我应该如何配置它?
答案 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>