我是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
我保证正确完成此操作将起作用。