日期:2014-05-17  浏览次数:20703 次

一个关于webservice的Axis问题
各位大侠,在下刚开始研究webservice用的是axis技术,现在我用命令行生成server-config.wsdd文件的时候无法生成,提示找不到文件,是何原因啊。

D:\Program Files\MyEclipse Enterprise Workbench 5.1.0 GA\eclipse>set Axis_Lib=D:
\workspace\GetMsgService\WebRoot\WEB-INF\lib

D:\Program Files\MyEclipse Enterprise Workbench 5.1.0 GA\eclipse>set Java_Cmd=ja
va -Djava.ext.dirs=D:\workspace\GetMsgService\WebRoot\WEB-INF\lib

D:\Program Files\MyEclipse Enterprise Workbench 5.1.0 GA\eclipse>java -Djava.ext
.dirs=D:\workspace\GetMsgService\WebRoot\WEB-INF\lib org.apache.axis.client.Admi
nClient -lhttp://localhost:8081/GetMsgService/servlet/AxisServlet deploy.wsdd
Processing file deploy.wsdd
Exception: deploy.wsdd (系统找不到指定的文件。)

D:\Program Files\MyEclipse Enterprise Workbench 5.1.0 GA\eclipse>pause
请按任意键继续. . .


------解决方案--------------------
我不知道 你用的是axis几,我用的是axis-1_4,这里有一个配置过程,你看看,或许对你有帮助
拷贝Axis包中 webapps/axis 目录中的所有文件到工程目录的 webroot 目录中,然后 刷新 工程

新建一个 java 文件,文件名称为:HelloClient,文件内容如下:
public class HelloClient
{
public String getName(String name)
{
return "Hello "+ name;
}
}

现在拷贝 HelloClient.java 到 webroot 目录中,并改名称为 HelloClient.jws

现在布署工程,并启动服务

启动浏览器并打开以下链接
http://localhost/axis/HelloClient.jws?wsdl
如果你没有配置过服务器端口的话请使用以下地址
http://localhost:8080/axis/HelloClient.jws?wsdl

如果正常的话将显示一个xml文件

新建一个测试类:HelloClientTest.java ,代码如下:
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class TestHelloClient {

public static void main(String[] args) {
try {
String endpoint = "http://localhost/axis/HelloClient.jws";
Service service = new Service();
Call call = null;
call = (Call) service.createCall();
call.setOperationName(new QName(
"http://localhost/axis/HelloClient.jws", "getName"));
call.setTargetEndpointAddress(new java.net.URL(endpoint));
String str = (String) call.invoke(new Object[] { "sonic" });
System.out.println(str);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

这个是可以的.