您的位置:首页 > 编程语言 > Java开发

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

2007-02-15 14:07 615 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐