Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.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代码_Java_Web Services - Fatal编程技术网

编译后无法执行Java代码

编译后无法执行Java代码,java,web-services,Java,Web Services,我想使用Java创建和发布简单的Web服务。 万事俱备。 当我跑的时候 >java-cp。ts.TimeServerPublisher 我犯了一个错误 错误:无法找到或加载主类ts.TimeServerPublisher package ts; import javax.xml.ws.Endpoint; public class TimeServerPublisher { /** * @param args */ public static void main(String[] args)

我想使用Java创建和发布简单的Web服务。 万事俱备。 当我跑的时候

>java-cp。ts.TimeServerPublisher

我犯了一个错误

错误:无法找到或加载主类ts.TimeServerPublisher

package ts;
import javax.xml.ws.Endpoint;
public class TimeServerPublisher {
/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Endpoint.publish("http://127.0.0.1:9876/ts", new TimeServerImpl());
}
}
知道为什么会有问题吗

我的代码如下所示

TimeServerPublisher

package ts;
import javax.xml.ws.Endpoint;
public class TimeServerPublisher {
/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Endpoint.publish("http://127.0.0.1:9876/ts", new TimeServerImpl());
}
}
TimeServerImpl.java

package ts;
import java.util.Date;
import javax.jws.WebService;
@WebService(endpointInterface = "ts.TimeServer")
public class TimeServerImpl implements TimeServer {
public String getTimeAsString() { return new Date().toString(); }
public long getTimeAsElapsed() { return new Date().getTime(); } 
}
package 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) 
public interface TimeServer {
@WebMethod String getTimeAsString();
@WebMethod long getTimeAsElapsed();
}
TimeServer.java

package ts;
import java.util.Date;
import javax.jws.WebService;
@WebService(endpointInterface = "ts.TimeServer")
public class TimeServerImpl implements TimeServer {
public String getTimeAsString() { return new Date().toString(); }
public long getTimeAsElapsed() { return new Date().getTime(); } 
}
package 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) 
public interface TimeServer {
@WebMethod String getTimeAsString();
@WebMethod long getTimeAsElapsed();
}

您尝试运行的类位于包ts中。 因此,如果您有此文件树:

/bin/ts/TimeServerPublisher
您必须运行以下命令

java -cp /bin ts/TimeServerPublisher

你应该经常发布你的stacktrace。我打赌您的主类不在类路径上-它与web服务无关。请同时发布:a)java程序调用输出(stacktrace?)b)编译命令以上都提供了。没有堆栈跟踪。仅输出一行错误。在第一个文件中有一个主方法。我添加的-cp标志是用于classpath的,我有相同的路径。C:\Users\workspace\ch01>java-cp/bin ts/TimeServerPublisher错误:无法在ch01/bin文件夹中找到或加载主类ts.TimeServerPublisher-try java ts/TimeServerPublisher。嘿嘿,它成功了。谢谢Sibbo。所以,当它运行时,它将保持在下一行上,不会出错。我将尝试看看现在是否可以使用Web服务器运行它。为什么它不能从文件夹中的ts中工作?因为项目的文件结构必须类似于包结构。没有TimeServerPublisher类,只有ts.TimeServerPublisher类。在文件系统中,它看起来像ts/TimeServerPublisher。