我这是JAV的调用方法:
Service srvcModel = new ObjectServiceFactory()
.create(Iquery.class);
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
.newInstance().getXFire());
String helloWorldURL = "http://172.17.99.20/yygh/services/Query";
try {
Iquery srvc = (Iquery) factory.create(
srvcModel, helloWorldURL);
Client client = ((XFireProxy)Proxy.getInvocationHandler(srvc)).getClient();
client.addOutHandler(new DOMOutHandler());
Properties properties = new Properties();
properties.setProperty(WSHandlerConstants.ACTION,WSHandlerConstants.USERNAME_TOKEN);//密码类
properties.setProperty(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_DIGEST); //密码类型 /PW_DIGEST以摘要方式发送,PW_TEXT以明文方式发送
properties.setProperty(WSHandlerConstants.USER, "tom");
properties.setProperty("password","123456");
properties.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS, UtClientPasswordHandler.class.getName());
client.addOutHandler(new WSS4JOutHandler(properties));
out.println("yygh:"+srvc.GetMzYygh("2008-05-01 00:00:00","2008-05-31 00:00:00").size());
} catch (MalformedURLException e) {
e.printStackTrace();
}
UtClientPasswordHandlerpackage com.client;import java.io.IOException;
import java.util.HashMap;
import java.util.Map;import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;import org.apache.ws.security.WSPasswordCallback;public class UtClientPasswordHandler implements CallbackHandler { private static final Map<String,String> pwMockDB = new HashMap<String,String>();
static{
pwMockDB.put("tom","123456");
}
public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException {
// TODO 自动生成方法存根
WSPasswordCallback callback = (WSPasswordCallback)callbacks[0];
String id = callback.getIdentifer();
callback.setPassword(pwMockDB.get(id)); }}
Service srvcModel = new ObjectServiceFactory()
.create(Iquery.class);
XFireProxyFactory factory = new XFireProxyFactory(XFireFactory
.newInstance().getXFire());
String helloWorldURL = "http://172.17.99.20/yygh/services/Query";
try {
Iquery srvc = (Iquery) factory.create(
srvcModel, helloWorldURL);
Client client = ((XFireProxy)Proxy.getInvocationHandler(srvc)).getClient();
client.addOutHandler(new DOMOutHandler());
Properties properties = new Properties();
properties.setProperty(WSHandlerConstants.ACTION,WSHandlerConstants.USERNAME_TOKEN);//密码类
properties.setProperty(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_DIGEST); //密码类型 /PW_DIGEST以摘要方式发送,PW_TEXT以明文方式发送
properties.setProperty(WSHandlerConstants.USER, "tom");
properties.setProperty("password","123456");
properties.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS, UtClientPasswordHandler.class.getName());
client.addOutHandler(new WSS4JOutHandler(properties));
out.println("yygh:"+srvc.GetMzYygh("2008-05-01 00:00:00","2008-05-31 00:00:00").size());
} catch (MalformedURLException e) {
e.printStackTrace();
}
UtClientPasswordHandlerpackage com.client;import java.io.IOException;
import java.util.HashMap;
import java.util.Map;import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;import org.apache.ws.security.WSPasswordCallback;public class UtClientPasswordHandler implements CallbackHandler { private static final Map<String,String> pwMockDB = new HashMap<String,String>();
static{
pwMockDB.put("tom","123456");
}
public void handle(Callback[] callbacks) throws IOException,
UnsupportedCallbackException {
// TODO 自动生成方法存根
WSPasswordCallback callback = (WSPasswordCallback)callbacks[0];
String id = callback.getIdentifer();
callback.setPassword(pwMockDB.get(id)); }}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货