asix2eclipse插件生成文件service.xml问题及解决办法.txt

    技术2022-05-11  73

    1 使用axis2 的eclipse插件axis2-eclipse-service-archiver-wizard.zip   生成的XXXXarr.jar中的service.xml文件有问题 它生成的文件内容如下[错误的内容] - <service name="HappyService">       <description>Please Type your service description here</description>       <parameter name="ServiceClass" locked="false">samples.Happy</parameter>       <excludeOperations>           <operation>sayHappy</operation>       </excludeOperations>   </service> 实际上,正确的情况物应该为 - <service name="HappyService">   <description>Please Type your service description here</description>   <parameter name="ServiceClass" locked="false">samples.Happy</parameter>   <operation name="sayHappy"></operation>   </service> 或 下面代码中的RPCMessageReceiver是为了在tomcat界面上可以生成wsdl - <service name="HappyService">       <description>Please Type your service description here</description>       <parameter name="ServiceClass" locked="false">samples.Happy</parameter>       <operation name="sayHappy">         <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />       </operation>   </service> ***********修改插件方法*********** 修改源文件:Axis_Service_Archiver_1.0.0/src/org/apache/axis2/tool/core/ServiceXMLCreater.java     public String toString() {         String serviceXML = "<service name=/"" + serviceName + "/" >/n" +                 "<description>/n" +                 "Please Type your service description here/n" +                 "</description>/n" +                 "<parameter name=/"ServiceClass/" locked=/"false/">" + serviceClass + "</parameter>/n";         if (operations.size() > 0) {            serviceXML = serviceXML + "<excludeOperations>/n";             for (int i = 0; i < operations.size(); i++) {                 String s = (String) operations.get(i);                 String op = "<operation>" + s + "</operation>/n";                 serviceXML = serviceXML + op;             }             serviceXML = serviceXML + "</excludeOperations>/n";         }         serviceXML = serviceXML + "</service>/n";         return serviceXML;     }     ----------------->     public String toString() {         String serviceXML = "<service name=/"" + serviceName + "/" >/n" +                 "<description>/n" +                 "Please Type your service description here/n" +                 "</description>/n" +                 "<parameter name=/"ServiceClass/" locked=/"false/">" + serviceClass + "</parameter>/n";         if (operations.size() > 0) {             //serviceXML = serviceXML + "<excludeOperations>/n";             for (int i = 0; i < operations.size(); i++) {                 String s = (String) operations.get(i);                 String op = "<operation name=/"" + s + "/"></operation>/n";                 serviceXML = serviceXML + op;             }            // serviceXML = serviceXML + "</excludeOperations>/n";         }         serviceXML = serviceXML + "</service>/n";         return serviceXML;     } 写一个build.xml放在Axis_Service_Archiver_1.0.0目录下 执行 ant build.xml内容如下: <?xml version="1.0" encoding="UTF-8"?> <project name="service_archive" default="create_jar" basedir=".">     <!-- set global properties for this build -->     <property name="src" value="./src"/>     <property name="class" value="./class"/>     <property name="lib" value="lib"/>              <target name="init">         <!-- Create the time stamp -->         <tstamp/>     </target>       <target name="compile" depends="init">         <!-- Compile the java code from ${src} into ${class} -->         <javac srcdir="${src}" destdir="${class}">             <classpath>                 <fileset dir="${lib}">                     <include name="**/*.jar"/>                 </fileset>             </classpath>         </javac>     </target>     <target name="create_jar" depends="compile">       <jar destfile="./Axis_Service_Archiver.jar"        basedir="${class}"       />     </target>     </project>    

    最新回复(0)