我是java的新手,我正尝试从书中编译和运行Web服务示例。
该示例使用3个文件。
我可以创建一个Eclipse Project并运行它。这样可以很好地工作。

从命令行我尝试了

javac TimeServer.java TimeServerImpl.java TimeServerPublisher.java

并没有错误

此程序未在命令行上运行,返回错误:

“无法找到主类”

java TimeServerPublisher

使用-classpath选项运行将返回相同的结果。
设置类路径也无济于事。即

java -classpath。时间服务器发布者

也失败了

大多数在线文档都指定我需要一个类路径。我尝试了他们建议的一切。

请帮忙。提前致谢

资源:

TimeServer.java

package ch01.ts;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style = Style.RPC) // more on this later
public interface TimeServer
{
    @WebMethod String getTimeAsString();
    @WebMethod long getTimeAsElapsed();
}


TimeServerImpl.java

package ch01.ts;

import java.util.Date;
import javax.jws.WebService;

@WebService(endpointInterface = "ch01.ts.TimeServer")

public class TimeServerImpl implements TimeServer
{

@Override
public String getTimeAsString()
{
    return new Date().toString();
}

@Override
public long getTimeAsElapsed()
{
    return new Date().getTime();
}


TimeServerPublisher.java

package ch01.ts;

import javax.xml.ws.Endpoint;

public class TimeServerPublisher
{
    public static void main(String[ ] args)
    {
        Endpoint.publish("http://127.0.0.1:9876/ts", new TimeServerImpl());
    }
}

最佳答案

您的班级未命名为TimeServerPublisher;它被命名为ch01.ts.TimeServerPublisher。即使您设法使JVM查找类文件,它也会以错误的名称错误拒绝它,因为您必须以其全名调用该类。

将所有类文件放入目录ch01/ts(如果尚不在目录中),然后从ch01的父目录中键入

java -cp . ch01.ts.TimeServerPublisher


我保证正确完成此操作将起作用。

07-24 12:46