Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从WSDL生成web服务_Java_Linux_Wsdl_Wsimport - Fatal编程技术网

Java 如何从WSDL生成web服务

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/

我知道这个问题已经被问了好几次,但我检查了stackoverflow历史记录/问题,它并没有完全回答我要做的事情。我有一个WSDL。我想为该WSDL生成一个web服务。我知道我必须手动编写一些东西,但这正是我需要帮助的部分

我有一个WSDL。我将其保存在/home/username/java/ws/wsdl/test.wsdl中。我在前面提到的wsdl使用的/home/username/java/ws/wsdl/test.xsd中也有一个xsd

我将为此生成服务器存根,如下所示:

[/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进行开发。