Tomcat手動公開WebService——axis 2
5361 ワード
axis2-web
META-INF
WEB-INF
classes
conf
axis2.xml
lib
activation.jar
...
xmlSchema.jar
modules
modules.list
addressing.mar
...
soapmonitor.mar
services
services.list
aservice.aar
...
version.aar
web.xml
import java.util.Random;
/**
*
* @author yanqh
* @since 2013-7-29
*
*/
public class HelloWorldService {
public String sayHello(String name) {
return name + " say: hello [axis2]";
}
public int getAge(int i) {
return i + new Random().nextInt(100);
}
}
.プロジェクトaxis 2のWEB-INFの下にフォルダpojoを新規作成し、HelloWorldServices.classはpojoに入れればOKです.「なぜpojoフォルダを使うのですか?プロジェクトWEB-INFconfのaxis 2.xmlファイルを見ると<deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
」とあります.プロジェクトのホームページのサービスリンクをクリックして、公開されたサービスを表示します.次のようにします. package samples.quickstart.service.pojo;
import java.util.HashMap;
public class StockQuoteService {
private HashMap map = new HashMap();
public double getPrice(String symbol) {
Double price = (Double) map.get(symbol);
if(price != null){
return price.doubleValue();
}
return 42.00;
}
public void update(String symbol, double price) {
map.put(symbol, new Double(price));
}
}
新しいservices.xml,<?xml version="1.0" encoding="UTF-8"?>
<service name="StockQuoteService" scope="application">
<description>
Stock Quote Sample Service
</description>
<messageReceivers>
<messageReceiver
mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
<messageReceiver
mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass">
samples.quickstart.service.pojo.StockQuoteService
</parameter>
</service>
その後、以下のディレクトリ構造を構築し、 - StockQuoteService //
- META-INF
- services.xml
- lib
- samples
- quickstart
- service
- pojo
- StockQuoteService.class
- StockQuoteService.wsdl // 6