0

私は最初のWebサービスの1つを書いていますが、これまでのところ問題はありませんでしたが、別のクラスを作成しようとすると、次のようになります。

public class Workers {

private String name;
private String surname;
private boolean type;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getSurname() {
    return surname;
}

public void setSurname(String surname) {
    this.surname = surname;
}

public boolean isType() {
    return type;
}

public void setType(boolean type) {
    this.type = type;
}

public Workers(String name, String surname, boolean type) {
    this.name = name;
    this.surname = surname;
    this.type = type;
}



}

そして、このようなWebサービスで使用するよりも:

@WebMethod(operationName = "SelectWorker")
public Pracownicy SelectWorker(@WebParam(name = "username") String username,       @WebParam(name = "password") String password) {

   ResultSet rs = null;
   String name = null;
   String surname = null;
   boolean type = false;

    PreparedStatement st = null;
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("db_address", "login", "password");
        System.out.println("connection status: " +con);
        st = con.prepareStatement("select name, surname from clients where login = ? and  passwd= ?");
        st.setString(1, username);
        st.setString(2, password);
        rs = st.executeQuery();

        if (rs.next()) {
           name = rs.getString(2);
           surname=rs.getString(3);
           type = rs.getBoolean(5);
           Workers pr = new Workers(name, surname, type);
           return pr;
        }
    } catch (Exception e) {
        System.out.println("error: " + e.toString());
    }


    return null;
}

メソッドの本体は空にすることもコードで埋めることもできますが、それは問題ではありません-同じエラーが発生します:

Error occurred during deployment: Exception while loading the app    
:java.lang.IllegalStateException: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: java.lang.RuntimeException: Servlet web 
service endpoint '' failure.

int、string、booleanなどはreturnタイプとしてのみ許可されていますか?

4

3 に答える 3

1

あなたの投稿には決して十分な情報がありません...どのようにWebサービスを作成していますか(@WebServiceで推測します)、メソッドSelectWorker(適切な方法でselectWorkerと呼ばれるべきです)かどうかは問題ではありません命名規則)は空かどうかはわかりませんが、本文が空の場合、ソースはコンパイルされません...

私が言えること:int、String、booleanだけが許可されている戻り型ではありません。もちろん、Webサービスからクラスのインスタンスを返すこともできます。

于 2012-04-12T07:47:04.847 に答える
0

将来のグーグルのために:

同じエラーが発生し、サーバーログを確認してエラーが発生しました:

2つのクラスのXMLタイプ名は同じです

私は奇妙なことを見つけましたが、これを追加します:

@XmlType(namespace="someName")

私のクラスに戻ろうとしていた(私はクラスの同じ名前を選んだ)問題を修正した。

于 2013-04-21T11:36:18.807 に答える
0

私はこの問題を抱えていました。GlassfishはLinux環境にありました。$JAVA_HOMEを確認してください。jdkに設定する必要があります。

エクスポートJAVA_HOME=/ usr / java / jdk1.7.0_55

/ opt / glassfish4 / glassfish / bin#echo $ JAVA_HOME

/usr/java/jdk1.7.0_55

その後、問題は解決されました。

于 2014-12-04T05:25:54.490 に答える