當前位置:首頁 » 編程語言 » webservice教程java

webservice教程java

發布時間: 2022-07-08 13:56:11

A. java 如何實現webservice 怎麼調用介面

一、利用jdkweb服務api實現,這里使用基於SOAPmessage的Web服務

①.首先建立一個WebservicesEndPoint:packageHello;
importjavax.jws.WebService;
importjavax.jws.WebMethod;
importjavax.xml.ws.Endpoint;
@WebService
publicclassHello{
@WebMethod
publicStringhello(Stringname){
return"Hello,"+name+" ";
}
publicstaticvoidmain(String[]args){
//createandpublishanendpoint
Hellohello=newHello();
Endpointendpoint=Endpoint.publish("


,hello);
}
}
②.使用apt編譯Hello.java(例:apt-d[存放編譯後的文件目錄]Hello.java),
會生成jaws目錄
③.使用javaHello.Hello運行,然後將瀏覽器指向


就會出現下列顯示
④.使用wsimport生成客戶端使用如下:
wsimport-p.-keep


這時,會在當前目錄中生成如下文件:
⑤.客戶端程序:
1classHelloClient{
2publicstaticvoidmain(Stringargs[]){
3HelloServiceservice=newHelloService();
4HellohelloProxy=service.getHelloPort();
5Stringhello=helloProxy.hello("你好");
6System.out.println(hello);
7}
8}

以上方法還稍顯繁瑣,還有更加簡單的方法


二、使用xfire,我這里使用的是myeclipse集成的xfire進行測試的利用xfire開發WebService,可以有三種方法:

1. 一種是從javabean中生成;

2.一種是從wsdl文件中生成;

3. 還有一種是自己建立webservice

步驟如下:

用myeclipse建立webservice工程,目錄結構如下:首先建立webservice介面,

代碼如下:

1packagecom.myeclipse.wsExample;
2//GeneratedbyMyEclipse
3
{
5
6publicStringexample(Stringmessage);
7
8}
接著實現這個借口:
1packagecom.myeclipse.wsExample;
2//GeneratedbyMyEclipse
3
{
5
6publicStringexample(Stringmessage){
7returnmessage;
8}
9
10}



修改service.xml文件,加入以下代碼:

1<service>
2<name>HelloWorldService</name>
3<serviceClass>
4com.myeclipse.wsExample.IHelloWorldService
5</serviceClass>
6<implementationClass>
7com.myeclipse.wsExample.HelloWorldServiceImpl
8</implementationClass>
9<style>wrapped</style>
10<use>literal</use>
11<scope>application</scope>
12</service>


把整個項目部署到tomcat伺服器中打開瀏覽器,輸入http://localhost:8989/HelloWorld/services/HelloWorldService?wsdl,可以看到如下:

然後再展開HelloWorldService後面的wsdl可以看到:

客戶端實現如下:

1packagecom.myeclipse.wsExample.client;
2
3importjava.net.MalformedURLException;
4importjava.net.URL;
5
6importorg.codehaus.xfire.XFireFactory;
7importorg.codehaus.xfire.client.Client;
8importorg.codehaus.xfire.client.XFireProxyFactory;
9importorg.codehaus.xfire.service.Service;
10importorg.codehaus.xfire.service.binding.ObjectServiceFactory;
11
12importcom.myeclipse.wsExample.IHelloWorldService;
13
14publicclassHelloWorldClient{
15publicstaticvoidmain(String[]args)throwsMalformedURLException,Exception{
16//TODOAuto-generatedmethodstub
17Services=newObjectServiceFactory().create(IHelloWorldService.class);
18XFireProxyFactoryxf=newXFireProxyFactory(XFireFactory.newInstance().getXFire());
19Stringurl="

20
21try
22{
23
24IHelloWorldServicehs=(IHelloWorldService)xf.create(s,url);
25Stringst=hs.example("zhangjin");
26System.out.print(st);
27}
28catch(Exceptione)
29{
30e.printStackTrace();
31}
32}
33
34}

有時候我們知道一個wsdl地址,比如想用java客戶端引用net做得webservice,使用myeclipse引用,但是卻出現無法通過驗證的錯誤,這時我們可以直接在類中引用,步驟如下:

1.publicstaticvoidmain(String[]args)throwsMalformedURLException,Exception{
2.//TODOAuto-generatedmethodstub



B. 如何在java web 裡面使用webservice技術

一、利用jdk web服務api實現,這里使用基於 SOAP message 的 Web 服務
1.首先建立一個Web services EndPoint:
package Hello;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.xml.ws.Endpoint;

@WebService
public class Hello {

@WebMethod
public String hello(String name) {
return "Hello, " + name + "\n";
}

public static void main(String[] args) {
// create and publish an endpoint
Hello hello = new Hello();
Endpoint endpoint = Endpoint.publish("http://localhost:8080/hello", hello);
}
}

2.使用 apt 編譯 Hello.java(例:apt -d [存放編譯後的文件目錄] Hello.java ) ,會生成 jaws目錄
3.使用java Hello.Hello運行,然後將瀏覽器指向http://localhost:8080/hello?wsdl就會出現下列顯示

4.使用wsimport 生成客戶端

使用如下:wsimport -p . -keep http://localhost:8080/hello?wsdl

這時,會在當前目錄中生成如下文件:

5.客戶端程序:

1class HelloClient{
2public static void main(String args[]) {
3 HelloService service = new HelloService();
4 Hello helloProxy = service.getHelloPort();
5 String hello = helloProxy.hello("你好");
6 System.out.println(hello);
7 }
8}
9

以上方法還稍顯繁瑣,還有更加簡單的方法

二、使用xfire,我這里使用的是myeclipse集成的xfire進行測試的
利用xfire開發WebService,可以有三種方法:
1一種是從javabean 中生成;
2 一種是從wsdl文件中生成;
3 還有一種是自己建立webservice
步驟如下:
用myeclipse建立webservice工程,目錄結構如下:

首先建立webservice介面,
代碼如下:

1package com.myeclipse.wsExample;
2//Generated by MyEclipse
3
4public interface IHelloWorldService {
5
6 public String example(String message);
7
8}
接著實現這個借口:
1package com.myeclipse.wsExample;
2//Generated by MyEclipse
3
4public class HelloWorldServiceImpl implements IHelloWorldService {
5
6 public String example(String message) {
7 return message;
8 }
9
10}
修改service.xml 文件,加入以下代碼:

1<service>
2 <name>HelloWorldService</name>
3 <serviceClass>
4 com.myeclipse.wsExample.IHelloWorldService
5 </serviceClass>
6 <implementationClass>
7 com.myeclipse.wsExample.HelloWorldServiceImpl
8 </implementationClass>
9 <style>wrapped</style>
10 <use>literal</use>
11 <scope>application</scope>
12 </service>
把整個項目部署到tomcat伺服器中 ,打開瀏覽器,輸入http://localhost:8989/HelloWorld/services/HelloWorldService?wsdl,可以看到如下:

然後再展開HelloWorldService後面的wsdl可以看到:

客戶端實現如下:
1package com.myeclipse.wsExample.client;
2
3import java.net.MalformedURLException;
4import java.net.URL;
5
6import org.codehaus.xfire.XFireFactory;
7import org.codehaus.xfire.client.Client;
8import org.codehaus.xfire.client.XFireProxyFactory;
9import org.codehaus.xfire.service.Service;
10import org.codehaus.xfire.service.binding.ObjectServiceFactory;
11
12import com.myeclipse.wsExample.IHelloWorldService;
13
14public class HelloWorldClient {
15public static void main(String[] args) throws MalformedURLException, Exception {
16// TODO Auto-generated method stub
17Service s=new ObjectServiceFactory().create(IHelloWorldService.class);
18XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());
19String url="http://localhost:8989/HelloWorld/services/HelloWorldService";
20
21 try
22 {
23
24 IHelloWorldService hs=(IHelloWorldService) xf.create(s,url);
25 String st=hs.example("zhangjin");
26 System.out.print(st);
27 }
28 catch(Exception e)
29 {
30 e.printStackTrace();
31 }
32 }
33
34}
35
這里再說點題外話,有時候我們知道一個wsdl地址,比如想用java客戶端引用.net 做得webservice,使用myeclipse引用,但是卻出現無法通過驗證的錯誤,這時我們可以直接在類中引用,步驟如下:

1public static void main(String[] args) throws MalformedURLException, Exception {
2 // TODO Auto-generated method stub
3 Service s=new ObjectServiceFactory().create(IHelloWorldService.class);
4 XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());
5
6
7//遠程調用.net開發的webservice
8Client c=new Client(new URL("http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl"));
9 Object[] o=c.invoke("qqCheckOnline", new String[]{"531086641","591284436"});
10
11//調用.net本機開發的webservice
12Client c1=new Client(new URL("http://localhost/zj/Service.asmx?wsdl"));
13Object[] o1=c1.invoke("HelloWorld",new String[]{});
14
15}

C. 求 java webservice視頻教程

第6章:WEB SERVICE及應用(軟體設計篇),免費下載

鏈接:https://pan..com/s/1Lwr2hmoYoaWagZbxVz0-jA

提取碼:uk42

Web Service是一個平台獨立的,低耦合的,自包含的、基於可編程的web的應用程序,可使用開放的XML(標准通用標記語言下的一個子集)標准來描述、發布、發現、協調和配置這些應用程序,用於開發分布式的交互操作的應用程序。

D. java如何寫webservice服務端

Java 中的 Web Service 分為基於 SOAP 的和基於 REST 的兩種,下面簡單說一個基於 SOAP 的例子。要使用 JDK6u4 之後的版本才能編譯通過。

先編寫一個 Web Service 的介面:

@WebService
@SOAPBinding(style=Style.RPC)
publicinterfaceTimeServer{
@();
@WebMethodlonggetTimeAsElapsed();
}

再編寫 Web Service 實現:

importjava.util.Date;
importjavax.jws.WebService;
@WebService(endpointInterface="test.TimeServer")
{
publicStringgetTimeAsString(){returnnewDate().toString();}
publiclonggetTimeAsElapsed(){returnnewDate().getTime();}
}

最後啟動 Web Service:

{
publicstaticvoidmain(String[]args){
Endpoint.publish("http://127.0.0.1:9876/ts",newTimeServerImpl());
}
}


如果正常啟動,可以用瀏覽器訪問 http://127.0.0.1:9876/ts?wsdl 看到這個 Web Service 的 wsdl 文檔。

E. 如何在Java中快速發布WebService服務

在Java中快速發布WebService服務方法:
一、通過Axis2提供的模板自動發布

這種方法非常簡單,只要下載Axis包後從裡面的「axis-1_4\webapps」中找到axis站點,將它拷出來放到你要部署的tomcat/webapps下,再將要發布的java類放到axis文件夾里,再將文件名的後綴改為「jws」,這樣一個webservice就發布成功了。訪問時按照路徑「http://IP:Port/axis/類名.jws?wsdl」就可以了。
怎麼樣?這種方法非常是不是非常簡單?對,它特別適合初學java或者是手頭沒有很好的SDE開發和調試工具的時候。
但很明顯,這種方法不太好調試,又不能凸顯您的專業水準,更不能集成到您的開發環境里。所以如果您不是很急,就可以用下面一種辦法來發布:
二、通過JWS來手動發布
步驟如下:
1、在Eclipse里新建一個Dynamic Web Project,如下圖所示(相信這一步您比我還熟,所以會的可以略過):
2、在「Project Name」中輸入工程名稱,如「JavaWebService」:
3、一直單擊「Next」按鈕直到出現如下對話框:
在上面的對話框中一定要注意需要選中「Generate web.xml deployment descriptor」,否則後面再添加就比較麻煩。選中後單擊「Finish」按鈕即可完成工程創建。
4、引入必須的jar包:
axis.jar、commons-discovery-0.2.jar、commons-logging.jar、jaxrpc.jar、saaj.jar、wsdl4j.jar

最好將jar包拷貝到工程的WEB-INF/lib下後直接引用本工程內的jar包,這樣不會導致工程文件夾或jar包所在文件夾移動後讀取不到jar包的問題:
分別單擊頂層對話框和「Properties」對話框的「OK」按鈕完成jar包引用。

5、新建package和java文件,如下圖所示:
首先說說com.test.javabean.Student.java這個類。看得出來這個類是個JavaBean,目的是為了封裝一個Java的實體類,這樣做的好處是萬一要把很多變數返回給客戶端的話,客戶端不至於在方法中聲明很多形參來接收,而是通過一個對象來接收。Student.java的實現如下:

[java] view plain

package com.test.javabean;
import java.io.Serializable;
public class Student implements Serializable{
private String ID;
private String Name;
private String Sex;
private int age;
public String getID() {
return ID;
}
public void setID(String iD) {
ID = iD;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getSex() {
return Sex;
}
public void setSex(String sex) {
Sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
再來看看com.test.webservice.CStudent.java這個類,定義如下:
[java] view plain

package com.test.webservice;
import javax.jws.WebService;
import com.test.javabean.Student;
@WebService
public class CStudent {
public Student getStudent(String name) throws java.rmi.RemoteException{
Student student = new Student();
student.setName(name);
student.setAge(14);
student.setID("25");
student.setSex("Male");
return student;
}
}
為了簡單起見,就不涉及到更多的後台查詢了,先寫死返回結果吧。不知您注意到了沒有,這個類跟普通類的區別是在類的頂部加了個「@WebService」聲明。對,這樣就是個WebService方法了,是不是也很簡單?但是這樣就得記著在上面引入javax.jws.WebService包。偶對了,這種方式是JDK1.7里增加的方式,所以要想使用這種特性,就得麻煩您把JDK升級到1.7,方法很簡單,用綠色版的就可以啦,不用勞煩您把JDK卸了又重裝。只需要把JDK放到哪個盤的根目錄(這樣是為了防止路徑中有空格或是括弧什麼的,否則一旦出問題您就苦逼了),然後把JDK的路徑定義為JAVA_HOME,再在path中增加%JAVA_HOME%/bin;就可以了。這樣做的好處是可以隨時很方便地更換JDK的版本,而不需要卸載後再重新安裝。
扯遠了。有了WebService的方法體,您還需要再發布一下WebService,所以還得新建一個com.test.servlet.CStudentServlet.java類:
[java] view plain

package com.test.servlet;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Properties;
import javax.jws.WebService;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.Endpoint;
import com.test.webservice.CStudent;
public class CStudentServlet extends HttpServlet{
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
super.init(config);
System.out.println("正在啟動WebService服務:http://192.168.56.1:8082/JavaWebService/Student");
Endpoint.publish("http://<span style="font-family: Arial, Helvetica, sans-serif;">192.168.56.1</span><span style="font-family: Arial, Helvetica, sans-serif;">:8082/</span><span style="font-family: Arial, Helvetica, sans-serif;">JavaWebService</span><span style="font-family: Arial, Helvetica, sans-serif;">/Student", new CStudent());</span>
}
/**
* @see Servlet#getServletConfig()
*/
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("進入WSServlet的service()方法");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}

上面的代碼中有處細節不知您注意了沒有:把IP地址、埠號、站點名等信息寫死到了代碼里。對,不僅如此,你這里寫的什麼IP,就必須用什麼IP訪問,即便是在本機寫成localhost都不可以。jws就是這么奇怪。所以在實際中可以參考一些資料動態獲取IP地址和埠號。

對了,您那邊代碼是不是報錯了?對,這是因為您還得做一步操作——添加server和對server組件包的引用,以tomcat為例,方法如下:
找到servers窗口,單擊「new server wizard...」鏈接:

打開如下對話框:

看到了吧?選擇Apache下的」Tomcat v7.0 Server「,然後單擊」Next「:

在上圖中單擊右側」Browse「按鈕,找到Tomcat所在的目錄,再在JRE中選擇1.7的JDK。如果您還沒有配置JDK,就請自行查找資料進行配置吧,某在這里就不講了,不然又扯遠啦。
然後進入這個窗口:

這個對話框得特別留意一下,不要著急單擊」Add「按鈕添加站點那,否則啟動後您就找不到站點部署的位置了。所以這一步直接單擊」Finish「。完畢後雙擊新添加的server,打開如下對話框:
在上面的窗口中,一定要先選擇第二項」Use Tomcat installation (takes control of Tomcat installation)「,然後在」Deploy path「中將內容改為」webapps「,然後再按下」Ctrl+S「鍵保存配置,這樣就可以把站點部署到您指定的tomcat的webapps下了。
然後記著給站點添加servlet-api.jar包的引用,在工程上單擊右鍵,選擇」Properties「,打開如下對話框:
看到了吧?切換到」Libraries「選項卡後先點擊右側的」Add Library「按鈕,再在彈出的窗口中選擇」Server Runtime「,單擊」Next「-->「Finish」和父窗口的」OK「按鈕就可以成功引入servlet所需的jar包了。怎麼樣?CStudentServlet.java中再沒有錯誤提示了吧?
下一步需要將servlet配置為自啟動,您只要在web.xml中增加如下內容就可以了:

[html] view plain
<servlet>

<servlet-name>CStudentServlet</servlet-name>
<servlet-class>com.test.servlet.CStudentServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CStudentServlet</servlet-name>
<url-pattern>/servlet/CStudentServlet</url-pattern>
</servlet-mapping>
記著把站點發布一下,在tomcat上單擊郵件,選擇「Add and Remove」,將JavaWebService發布到tomcat中。
下一步只要發布和啟動一下站點就可以了。如果您還不會,那就在server上單擊右鍵,選擇「Publish」,然後再選擇「Start」就可以了。
啟動成功

F. java webservice如何學習

現在主要是Struts+Hibernate+spring開發為主流。就是俗稱SSH,還有其他的比如Struts2+Hibernate+spring,是現在比較流行的,但是struts2有安全漏洞,現在補丁已打上,現在一般的公司有大概1半以上用的Struts1,也可以用servelt+jsp+javabean,這種開發速度比較快,缺點是開發周期長,所以還是要用上面這種,此外,還有SpringMVC等等。

G. java如何調用webservice介面

Java通過WSDL文件來調用webservice直接調用模式如下:

import java.util.Date;

import java.text.DateFormat;

import org.apache.axis.client.Call;

import org.apache.axis.client.Service;

import javax.xml.namespace.QName;

import java.lang.Integer;

import javax.xml.rpc.ParameterMode;

public class caClient {

public static void main(String[] args) {

try {

String endpoint = "http://localhost:8080/ca3/services/caSynrochnized?wsdl";

//直接引用遠程的wsdl文件

//以下都是套路

Service service = new Service();

Call call = (Call) service.createCall();

call.setTargetEndpointAddress(endpoint);

call.setOperationName("addUser");//WSDL裡面描述的介面名稱

call.addParameter("userName", org.apache.axis.encoding.XMLType.XSD_DATE,

javax.xml.rpc.ParameterMode.IN);//介面的參數

call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//設置返回類型

String temp = "測試人員";

String result = (String)call.invoke(new Object[]{temp});

//給方法傳遞參數,並且調用方法

System.out.println("result is "+result);

}

catch (Exception e) {

System.err.println(e.toString());

}

}

}

H. java調用webservice介面具體怎麼調用

Java調用WebService可以直接使用Apache提供的axis.jar自己編寫代碼,或者利用Eclipse自動生成WebService Client代碼,利用其中的Proxy類進行調用。理論上是一樣的,只不過用Eclipse自動生成代碼省事些。
1、編寫代碼方式:
package com.yun.test;
import java.rmi.RemoteException;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.PrefixedQName;
import org.apache.axis.message.SOAPHeaderElement;
import com.cezanne.golden.user.Exception;
import com.cezanne.golden.user.UserManagerServiceProxy;
import javax.xml.namespace.QName;
import java.net.MalformedURLException;
import javax.xml.rpc.ServiceException;
import javax.xml.soap.Name;
import javax.xml.soap.SOAPException;

public class testWebService {
public static String getResult() throws ServiceException, MalformedURLException, RemoteException, SOAPException
{
//標識Web Service的具體路徑
String endpoint = "WebService服務地址";
// 創建 Service實例
Service service = new Service();
// 通過Service實例創建Call的實例
Call call = (Call) service.createCall();
//將Web Service的服務路徑加入到call實例之中.
call.setTargetEndpointAddress( new java.net.URL(endpoint) );//為Call設置服務的位置
// 由於需要認證,故需要設置調用的SOAP頭信息。
Name headerName = new PrefixedQName( new QName("發布的wsdl里的targetNamespace里的url", "string_itemName") );
org.apache.axis.message.SOAPHeaderElement header = new SOAPHeaderElement(headerName);
header.addTextNode( "blablabla" );
call.addHeader(header);

// SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement("發布的wsdl里的targetNamespace里的url", "SoapHeader");
// soapHeaderElement.setNamespaceURI("發布的wsdl里的targetNamespace里的url");
// try
// {
// soapHeaderElement.addChildElement("string_itemName").setValue("blablabla");
// }
// catch (SOAPException e)
// {
// e.printStackTrace();
// }
// call.addHeader(soapHeaderElement);
//調用Web Service的方法
org.apache.axis.description.OperationDesc oper;
org.apache.axis.description.ParameterDesc param;
oper = new org.apache.axis.description.OperationDesc();
oper.setName("opName");
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg0"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg1"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);
param = new org.apache.axis.description.ParameterDesc(new javax.xml.namespace.QName("", "arg2"), org.apache.axis.description.ParameterDesc.IN, new javax.xml.namespace.QName("http://www.w3.org/2001/XMLSchema", "string"), java.lang.String.class, false, false);
param.setOmittable(true);
oper.addParameter(param);

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:432
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:235
java駝峰 發布:2025-02-02 09:13:26 瀏覽:651
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726