本文目錄一覽:
Java調用wsdl,怎麼實現
java調用wsdl的步驟如下,主要是使用第三方框架:
步驟如下:
1.下載AXIS2類庫,AXIS2是目前java調用webservice的一個主要方法(由於更新較頻繁,請自行google該類庫的網址)
2.由於是第三方webservice,直接引入AXIS2的包就可以用了,代碼如下:
import java.rmi.RemoteException;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
public class webServiceTest {
public String invokeRemoteFuc() {
String endpoint = “”;
String result = “no result!”;
Service service = new Service();
Call call;
Object[] object = new Object[1];
object[0] = “Dear I miss you”;//Object是用來存儲方法的參數
try {
call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);// 遠程調用路徑
call.setOperationName(“say”);// 調用的方法名
// 設置參數名:
call.addParameter(“str1”, // 參數名
XMLType.XSD_STRING,// 參數類型:String
ParameterMode.IN);// 參數模式:’IN’ or ‘OUT’
// 設置返回值類型:
call.setReturnType(XMLType.XSD_STRING);// 返回值類型:String
result = (String) call.invoke(object);// 遠程調用
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
return result;
}
public static void main(String[] args) {
webServiceTest t = new webServiceTest();
String result = t.invokeRemoteFuc();
System.out.println(result);
}
}
該方法的原理很簡單,通過AXIS2封裝好的類設置URL和參數,直接調用就好了,我們要關注的就是設置URL,方法,還有方法的參數,其他的copypaste好啦,很簡單吧,再看看其他的方法,我勒個去了,害我瞎搞兩天。遲點上個源碼共大家參考!
Java怎麼實現wsdl發送xml
步驟如下:
1.下載AXIS2類庫,AXIS2是目前java調用webservice的一個主要方法(由於更新較頻繁,請自行google該類庫的網址)
2.由於是第三方webservice,直接引入AXIS2的包就可以
代碼如下:
import java.rmi.RemoteException;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
public class webServiceTest {
public String invokeRemoteFuc() {
String endpoint = “”;
String result = “no result!”;
Service service = new Service();//新建一個service
Call call;
Object[] object = new Object[1];
object[0] = “Dear I miss you”;//Object是用來存儲方法的參數
try {
call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);// 遠程調用路徑
call.setOperationName(“say”);// 調用的方法名
// 設置參數名:
call.addParameter(“str1”, // 參數名
XMLType.XSD_STRING,// 參數類型:String
ParameterMode.IN);// 參數模式:’IN’ or ‘OUT’
// 設置返回值類型:
call.setReturnType(XMLType.XSD_STRING);// 返回值類型:String
result = (String) call.invoke(object);// 遠程調用
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
return result;//返回值
}
public static void main(String[] args) {
webServiceTest t = new webServiceTest();
String result = t.invokeRemoteFuc();
System.out.println(result); //輸出
}
}
通過AXIS2封裝好的類設置URL和參數,直接調用。
java webservice怎麼生成wsdl文件
在大多數情況下我們都需要為我們的服務提供一個WSDL文件,而 Axis2’s Java2WSDL 是專門用來生成WSDL文件的D專用工具,如果你要在命令行模式下進行生成WSDL文件,首先需要保證你的環境變量AXIS2_HOME是否已經配置OK,同時還要保證把%AXIS2_HOME%\bin加入到你的path環境中,要生成 WSDL文件,首先要保證你的class能夠編譯成功,而且已經編譯成功,然後進入class文件編譯後的根目錄(在JBuilder中是classes,在Eclipse中是bin目錄)這時,生成WSDL文件的準備工作已經OK。\x0d\x0a\x0d\x0a下面是生成WSDL文件時的可選參數和參數說明:\x0d\x0a———————————————————————————\x0d\x0aUsage java2wsdl -cn : class file name\x0d\x0a-o : output file location\x0d\x0a\x0d\x0a-cp : list of classpath entries – (urls)\x0d\x0a\x0d\x0a-tn : target namespace\x0d\x0a\x0d\x0a-tp : target namespace prefix\x0d\x0a\x0d\x0a-stn : target namespace for schema\x0d\x0a\x0d\x0a-stp : target namespace prefix for schema\x0d\x0a\x0d\x0a-sn : service name\x0d\x0a\x0d\x0a-of : output file name for the WSDL\x0d\x0a\x0d\x0a-st : style for the WSDL\x0d\x0a\x0d\x0a-u : use for the WSDL\x0d\x0a\x0d\x0a-l : address of the port for the WSDL\x0d\x0a\x0d\x0a-nsg : fully qualified name of the class that implements NamespaceGenerator\x0d\x0a\x0d\x0a-p2n [,,] …\x0d\x0a\x0d\x0a-efd : Setting for elementFormDefault (defaults to qualified)\x0d\x0a\x0d\x0a-afd : Setting for attributeFormDefault (defaults to qualified)\x0d\x0a\x0d\x0a-xc : Extra class for which schematype must be generated.\x0d\x0aUse as : -xc class1 -xc class2 …\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0a典型地,進入你的工程的二進制編譯根目錄,執行命令模板如下:\x0d\x0ajava2wsdl -cp . -cn [PACKAGENAME].[CLASSNAME]-of [FILENAME].wsdl\x0d\x0a\x0d\x0a現在我們假設在samples.helloworld.service.axiom;包下面有個HelloWorldService類,工程的類文件編譯後存放在build\classes目錄下,那麼,首先進入該目錄中,然後執行以下命令:\x0d\x0ajava2wsdl -cp . -cn samples.helloworld.service.axiom.HelloWorldService -of HelloWorldService.wsdl\x0d\x0a\x0d\x0a執行後的CMD提示如下說明已經成功執行了:\x0d\x0a\x0d\x0aUsing AXIS2_HOME: D:\axis2-1.1.1\x0d\x0aUsing JAVA_HOME: C:\Program Files\Java\jdk1.5.0_06
JAX-WS用什麼命令從JAVA代碼生成WSDL文檔?
你好,使用java自帶的wsgen命令生成wsdl文件,前提是需要開發機器上安裝並配置好了java環境變量。
操作步驟如下:
在cmd下,切換到項目(wsproject)目錄下,輸入如下命令:D:\wsprojectwsgen -cp WebRoot/WEB-INF/classes/ -r WebRoot/WEB-INF/wsdl -s src -d WebRoot/WEB-INF/classes -wsdl name.zeal.service.MySrv
執行完畢後,會在WebRoot/WEB-INF/wsdl下生成兩個文件:MySrvService.wsdl和MySrvService_schema1.xsd
如果接口客戶端只能用一個wsdl文件,那就得使用內嵌模式的WSDL文件命令生成單個文件了。示例:D:\wsprojectwsgen -cp WebRoot\WEB-INF\classes\ -r WebRoot/WEB-INF/wsdl -s src -d WebRoot/WEB-INF/classes -wsdl -inlineSchemas name.zeal.service.MySrv
注意事項:如果要用到wsgen,則必須需要對Service實現的Java代碼進行標註註解,否則wsgen無法識別到這是一個WebService
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/293348.html