Java“Class file contains wrong class”错误

3
我正在尝试创建一个控制台应用程序来测试我的Web服务。 我已经成功部署了一个Web服务,位于http://localhost:8080/WS/myWS, 并且使用wsimport生成了代理类:
wsimport -d bin -s src http://localhost:8080/WS/myWS?wsdl

现在我的webservice类位于bin/mywebservice/中,我正在尝试使用classpath = ./编译我的客户端类。

这是我的类的源代码:

import bin.mywebservice.myClass_Service;
public class TesterApp{
    public static void main (String args[])
    {    
        myClass_Service service = new myClass_Service(); 
    }
}

我遇到了一个错误:

TesterApp.java:1: error: cannot access myClass_Service
import bin.mywebservice_Service.myClass;
                               ^
  bad class file: .\bin\mywebservice\myClass_Service.class
    class file contains wrong class: mywebservice.myClass_Service
    Please remove or make sure it appears in the correct subdirectory of the classpath.

请帮忙看看,我的myClass_Service有什么问题? 我确定,myClass_Service.class 存在于 .\bin\mywebservice\ 目录下。

4个回答

3

你在import声明中错误地包含了bin

应该将bin放在类路径中,并更正import

除非(命名不当的)myClass_Service.java文件是package bin.mywebservice(根据错误信息,它不是),否则你正在错误的位置尝试修复问题。


1
我真是太丢脸了。我应该从头开始学习Java。 - yur15t

2

看起来生成的类有一个包mywebservice,而不是bin.mywebservice。确保bin目录在类路径上,并从包中删除bin


0
如果你确定你的文件位于bin目录中,你需要检查调用mywebservice.myClass_Service的类文件。
同样在bin目录下。因为当两个文件不在相同位置时,会出现错误。或者你可以检查代码顶部的包位置。

package bin;

看一下并比较这两个。

-1

如果您正在使用软件包,则此 makefile 可能会有所帮助:

CLASS_PATH = ../bin

vpath %.class $(CLASS_PATH)

all : HelloJNI.h

HelloJNI.h : com/my/package/HelloJNI.class
    javah -classpath $(CLASS_PATH) com.my.package.$*

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接