axis呼び出しcxfのwebservicesパラメータが受信できません.
2934 ワード
オリジナル作品は、転載を許可します.転載する時は必ずハイパーリンクで文章の原本の出所、作者の情報と本人の声明を明示してください.さもなくば法律責任を追及します.
作者:永恒の_☆住所:http://blog.csdn.net/chenghui0317/article/details/9310789
今CXFを勉強しています.Webserviceサービスを発表しました.cxfのクライアントを使って訪問すれば、簡単です.以下の通りです.
インターフェースを定義する時: public String get AlbumList(@WebParam(name="xml Str")String xml Str);
ここのWebParamは指定しなければなりません.さもなければ呼び出し時にnullに戻ります.
作者:永恒の_☆住所:http://blog.csdn.net/chenghui0317/article/details/9310789
今CXFを勉強しています.Webserviceサービスを発表しました.cxfのクライアントを使って訪問すれば、簡単です.以下の通りです.
// cxf cxf webservice
// , cxf webservice namespace ,
// ,
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
org.apache.cxf.endpoint.Client client = dcf.createClient("http://localhost:8080/facelook/services/facelookWebService?wsdl");
//url webService wsdl
QName name=new QName("http://server.webservice.facelook.com/","getAlbumList");
//namespace ,methodName
String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ " <facelook>"
+ " <condition>"
+ " <name> </name>"
+ " <description></description>"
+ " <pageno></pageno>"
+ " <pagesize></pagesize>"
+ " </condition>"
+ " </facelook>";
//paramvalue
Object[] objects=client.invoke(name,xmlStr);
// web Service//
System.out.println(objects[0].toString());
しかし、axisクライアントを使用して起動する時はずっとサービス側でパラメータを受信できませんでした.様々な方法が試しられました.元々は伝達パラメータと返却結果のタイプを指定します.String xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ " <facelook>"
+ " <condition>"
+ " <name> </name>"
+ " <description></description>"
+ " <pageno></pageno>"
+ " <pagesize></pagesize>"
+ " </condition>"
+ " </facelook>";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress("http://localhost:8080/facelook/services/facelookWebService?wsdl");
QName qName = new QName("http://server.webservice.facelook.com/", "getAlbumList");
call.setOperationName(qName);
call.setUseSOAPAction(true);
// , 。
call.addParameter("xmlStr", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
String result = (String) call.invoke(new Object[] { xmlStr });
System.out.println(result);
もう一つ説明しなければなりません.インターフェースを定義する時: public String get AlbumList(@WebParam(name="xml Str")String xml Str);
ここのWebParamは指定しなければなりません.さもなければ呼び出し時にnullに戻ります.