首先:创建java项目testWebService,
然后:编写java:/testWebService/src/Test.java
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.impl.llom.OMElementImpl;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
public class Test {
public static void main(String[] args) {
System.out.println("================++++++++++===========");
String uname = "*涛";
Object cert_num = "3702*1811";
RPCServiceClient serviceClient;
try {
serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
String endpoint = "http://17*.1.146/bianmin.asmx";
System.out.println("DMZ-url=========="+endpoint);
EndpointReference targetEPR = new EndpointReference(endpoint);
options.setTo(targetEPR);
options.setAction("http://www.bluebutterfly.cn/ShowInfoByCardIDName");
System.out.println("DMZ-Action==========http://www.bluebutterfly.cn/ShowInfoByCardIDName");
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace("http://www.bluebutterfly.cn/", "");
OMElement data = fac.createOMElement("ShowInfoByCardIDName",omNs);
OMElement inner = fac.createOMElement("name", omNs);
inner.setText(String.valueOf(uname));
data.addChild(inner);
inner = fac.createOMElement("cardID", omNs);
inner.setText(String.valueOf(cert_num));
data.addChild(inner);
OMElement result = serviceClient.sendReceive(data);
System.out.println("InfoResult=================="+result);
System.out.println("MapResult"+formOMElement(result));
} catch (Exception e) {
e.printStackTrace();
System.out.print("error");
}
}
public static Map formOMElement( OMElement perInfoElem){
if(perInfoElem == null || "0".equals(perInfoElem) ){
return null;
}
try{
/**
* 此方法提取对象的第一个节点,经过对象.getFirstElement()方法解析后,
* 其内容是:<Z><A>a</A><B>b</B></Z>
* paramElem必须是当前对象只包括子节点对象,否则继续解析。直到只存在子节点对象。
*/
OMElement paramElem = perInfoElem.getFirstElement();
System.out.println("paramElem--FirstElement=================="+paramElem);
// 第一种方式遍历子节点对象,集合存放的内容是<A>a</A><B>b</B>
Iterator it = paramElem.getChildElements();
Map perInfo = new HashMap();
while (it.hasNext()) {
// 此对象存放的是<A>a</A>、<B>b</B>内容
OMElementImpl childs = (OMElementImpl) it.next();
if (childs.getLocalName().equals("SFZH")) {
perInfo.put("cert_num", childs.getText());// 身份证号
perInfo.put("cert_type", 1);// 类型
}
if (childs.getLocalName().equals("NAME")) {
perInfo.put("uname", childs.getText());// 真实姓名
}
if (childs.getLocalName().equals("SEX")) {
String sexStr = childs.getText().trim();
if ("男".equals(sexStr)) {
perInfo.put("sex", 0);// 得到性别
} else if ("女".equals(sexStr)) {
perInfo.put("sex", 1);// 得到性别
}
}
if (childs.getLocalName().equals("DOMICILE")) {
perInfo.put("address", childs.getText());// 得到住址
}
if (childs.getLocalName().equals("BIRTHDATE")) {
if(childs.getText()!=null && !"".equals(childs.getText())){
String [] birthdayArr=childs.getText().split("-");
StringBuffer strb = new StringBuffer();
for(int i = 0; i < birthdayArr.length; i++){
strb. append(birthdayArr[i]);
}
perInfo.put("birthday", strb.toString());// 得到生日
}
}
}
return perInfo;
}catch(Exception e){
return null;
}
}
}
项目里有很多外面引入的jar包
然后:生成mainfest文件,jar包的描述文件,右击项目导出jarfile,选择导出jar的名称和位置,选择mainfest file,完成,
Manifest-Version: 1.0
然后在该文件里加入jar的位置和mainclass
Manifest-Version: 1.0 Main-Class: Test Class-Path: lib/DSignServer.jar lib/XmlSchema-1.4.7.jar lib/activat ion-1.1.jar lib/activemq-all-5.4.0.jar lib/antlr-2.7.7.jar lib/axiom- api-1.2.12.jar lib/axiom-dom-1.2.12.jar lib/axiom-impl-1.2.12.jar lib /axis2-adb-1.6.1.jar lib/axis2-adb-codegen-1.6.1.jar lib/axis2-cluste ring-1.6.1.jar lib/axis2-codegen-1.6.1.jar lib/axis2-corba-1.6.1.jar lib/axis2-fastinfoset-1.6.1.jar lib/axis2-java2wsdl-1.6.1.jar lib/axi s2-jaxbri-1.6.1.jar lib/axis2-jaxws-1.6.1.jar lib/axis2-jibx-1.6.1.ja r lib/axis2-json-1.6.1.jar lib/axis2-kernel-1.6.1.jar lib/axis2-metad ata-1.6.1.jar lib/axis2-mtompolicy-1.6.1.jar lib/axis2-saaj-1.6.1.jar lib/axis2-soapmonitor-servlet-1.6.1.jar lib/axis2-spring-1.6.1.jar l ib/axis2-transport-http-1.6.1.jar lib/axis2-transport-local-1.6.1.jar lib/axis2-xmlbeans-1.6.1.jar lib/bcel-5.1.jar lib/bcmail-jdk14-138.j ar lib/bcprov-jdk14-124.jar lib/c3p0-0.9.1.2.jar lib/cobar-client.jar lib/commons-cli-1.2.jar lib/commons-codec-1.3.jar lib/commons-fileup load-1.2.jar lib/commons-httpclient-3.1.jar lib/commons-io-1.4.jar li b/commons-lang-2.5.jar lib/commons-logging.jar lib/dom4j-1.6.1.jar li b/geronimo-annotation_1.0_spec-1.1.jar lib/geronimo-jaxws_2.2_spec-1. 0.jar lib/geronimo-jta_1.1_spec-1.1.jar lib/geronimo-saaj_1.3_spec-1. 0.1.jar lib/geronimo-stax-api_1.0_spec-1.0.1.jar lib/geronimo-ws-meta data_2.0_spec-1.1.2.jar lib/hadoop-core-1.0.3.jar lib/httpcore-4.0.ja r lib/ibatis-2.3.4.726.jar lib/jaxb-api-2.1.jar lib/jaxb-impl-2.1.7.j ar lib/jaxb-xjc-2.1.7.jar lib/jaxen-1.1.1.jar lib/jaxws-tools-2.1.3.j ar lib/jce-jdk13-127.jar lib/jettison-1.0-RC2.jar lib/jibx-bind-1.2.j ar lib/jibx-run-1.2.jar lib/jsr311-api-1.0.jar lib/juli-6.0.16.jar li b/log4j-1.2.12.jar lib/mail.jar lib/mex-1.6.1-impl.jar lib/mysql-conn ector-java-5.1.12-bin.jar lib/neethi-3.0.1.jar lib/netty-3.2.7.Final. jar lib/regexp-1.2.jar lib/rtf.jar lib/slf4j-api-1.6.1.jar lib/slf4j- log4j12-1.6.1.jar lib/spring-2.5.6.SEC02.jar lib/ssoCertApiJava.jar l ib/tribes-6.0.16.jar lib/woden-api-1.0M9.jar lib/woden-impl-commons-1 .0M9.jar lib/woden-impl-dom-1.0M9.jar lib/wsdl4j-1.6.2.jar lib/wstx-a sl-3.2.9.jar lib/xalan-2.7.0.jar lib/xmemcached-1.3.7.jar lib/xml-res olver-1.2.jar lib/xmlbeans-2.3.0.jar lib/xpp3_min-1.1.4c.jar lib/xstr eam-1.3.1.jar lib/zookeeper-3.3.2.jar lib/hadoop-core-0.20-append-r10 56497.jar lib/hbase-0.90.2-tests.jar lib/hbase-0.90.2.jar
然后:导出jar包,自动生成的jar里面的MANIFEST.MF文件就是根据描述文件生成的,与其一致,注意,MANIFEST.MF一行jar太多,回报line too long,可以换行,但是需要保证新一行前面空两格;
然后,把jar包都放在jar包位置的根目录里加入lib文件夹,并把相关jar放进去,跟描述文件引入的jar相同的jar
运行jar,cmd 找到jar包的目录,然后java -jar test.jar
java -cp test.jar a