Java 如何从WSDL生成web服务
我知道这个问题已经被问了好几次,但我检查了stackoverflow历史记录/问题,它并没有完全回答我要做的事情。我有一个WSDL。我想为该WSDL生成一个web服务。我知道我必须手动编写一些东西,但这正是我需要帮助的部分 我有一个WSDL。我将其保存在/home/username/java/ws/wsdl/test.wsdl中。我在前面提到的wsdl使用的/home/username/java/ws/wsdl/test.xsd中也有一个xsd 我将为此生成服务器存根,如下所示:Java 如何从WSDL生成web服务,java,linux,wsdl,wsimport,Java,Linux,Wsdl,Wsimport,我知道这个问题已经被问了好几次,但我检查了stackoverflow历史记录/问题,它并没有完全回答我要做的事情。我有一个WSDL。我想为该WSDL生成一个web服务。我知道我必须手动编写一些东西,但这正是我需要帮助的部分 我有一个WSDL。我将其保存在/home/username/java/ws/wsdl/test.wsdl中。我在前面提到的wsdl使用的/home/username/java/ws/wsdl/test.xsd中也有一个xsd 我将为此生成服务器存根,如下所示: [/home/
[/home/username/java/ws/wsdl/] $ wsimport -p com.uptimeservice.ws -d build/classes -s src wsdl/test.wsdl
现在,我需要一个实现者。我在/home/username/java/ws/src/WsImpl.java下创建了一个类似的文件:
package com.uptimeservice;
import javax.jws.WebService;
import com.uptimeservice.ws.*;
@WebService(name = "UptimeService",
targetNamespace = "test",
serviceName = "UptimeService",
portName = "UptimeServiceSOAP",
endpointInterface = "com.uptimeservice.ws.UptimeService",
wsdlLocation = "/home/username/java/ws/wsdl/test.wsdl")
public class WsImpl implements UptimeService {
@Override
public UptimeResponseType uptimeRequest(UptimeRequestType msg) {
UptimeResponseType resp = null;
return resp;
}
}
我是这样编译的:
[/home/username/java/ws/src/]$javac-classpath/home/username/java/ws/build/classes/:。com/uptimeservice/WsImpl.java
然后,当我尝试部署服务时,如下所示:
/home/username/java/ws/src/]$java-classpath/home/username/java/ws/build/classes/:。com/uptimeservice/WsImpl
我得到一个错误:
线程“main”java.lang.NoSuchMethodError中出现异常:main
我猜这是一件非常琐碎的事情,但我不是一个Java人
感谢您的帮助
谢谢 通常,web服务将以war文件的形式安装在java web服务器上,如Tomcat、Jboss、Jetty、Websphere 您试图将其作为独立应用程序手动运行,所有独立应用程序都需要一个名为
main
的主函数,例如C或C
那么,您实际上将如何在Web服务器上或作为独立应用程序部署它呢
如果你把它作为一个独立的应用程序,那么你需要一个嵌入式http服务器,顺便说一句。我知道我需要一个web服务器——不用担心。如果您看一下(),您会发现从实现(而不是契约)中获取webservice更容易,而且似乎不需要比webservice和WebMethod中的Java库更多的东西,这两个库都嵌入在我的代码中。我遗漏了什么?在WsImpl中没有主节点。wsimport命令将生成代码,然后您需要从部署在Web服务器或独立应用程序上的应用程序调用它。当您尝试使用java时。。。WsImpl java命令正在查找main,没有找到它,因此抛出一个error.OK。那部分我已经知道了。我主要有什么可以部署web服务?当我添加main()时,它只是退出程序,而Web服务没有部署。为了检查是否部署了webservice,我在main中添加了sleep,但这也没有帮助。我不确定我是否理解。您可能想看看这样的内容:您能否详细介绍一下您使用的环境,例如apache cxf、axis2等。。。?还建议使用像eclipse或netbeans这样的ide,因为我可以看到您正在一些记事本上编写并手动编译它。SBI使用的是Linux环境,一切都只是命令行。我尽量不使用eclipse等。我使用XEMAC进行开发。