Java "Файл класса содержит неправильный класс" ошибка - PullRequest
2 голосов
/ 04 декабря 2011

Я пытаюсь создать консольное приложение для тестирования моего веб-сервиса.Я успешно развернул веб-сервис на http://localhost:8080/WS/myWS и создал прокси-классы с помощью wsimport:

wsimport -d bin -s src http://localhost:8080/WS/myWS?wsdl

Теперь мои классы веб-сервисов расположены в 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 \

Ответы [ 3 ]

3 голосов
/ 04 декабря 2011

Вы неправильно включили bin в объявление import.

Вместо того, чтобы поставить bin на путь к классам и исправить import.

Если (плохоmyClass_Service.java файл package bin.mywebservice (это не так, согласно сообщению об ошибке), вы пытаетесь исправить проблему не в том месте.

2 голосов
/ 04 декабря 2011

Похоже, сгенерированный класс имеет пакет mywebservice, а не bin.mywebservice. Убедитесь, что каталог bin находится в пути к классам, и удалите bin из пакетов.

0 голосов
/ 04 ноября 2013

Этот make-файл может помочь, если вы используете пакеты:

CLASS_PATH = ../bin

vpath %.class $(CLASS_PATH)

all : HelloJNI.h

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