Ошибка: неверный тип для структуры JAX-RPC: jspf.common.ForumPost

Я должен сделать веб-сервис, используя JAX-RPC для проекта, и я получаю error: invalid type for JAX-RPC structure: jspf.common.ForumPost при попытке его скомпилировать. Мы должны использовать JDK 5 и J2EE 1.4. Я использую Netbeans 7.0 с плагином JAX-RPC и плагином поддержки Glassfish v1, чтобы использовать Application Server PE 9 в качестве моего контейнера.

Это мой класс:

package jspf.common;

import java.sql.Date;


public class ForumPost extends java.lang.Object implements java.io.Serializable {

    private String poster;
    private String content;
    private int topic_id;
    private int post_id;
    private Date time;

    /**
     * Creates a new ForumPost object.
     * @param poster The username of the user that posted the post.
     * @param content The body/content of the post.
     * @param topic_id The topic ID that this post replies to.
     * @param post_id This post's ID.
     */
    public ForumPost() {
    }

    public ForumPost(int post_id, int topic_id, String poster, String content, Date time) {
        this.poster = poster;
        this.content = content;
        this.topic_id = topic_id;
        this.post_id = post_id;
        this.time = time;
    }

    public Date getTime() {
        return time;
    }

    public String getContent() {
        return content;
    }

    public int getPost_id() {
        return post_id;
    }

    public String getPoster() {
        return poster;
    }

    public int getTopic_id() {
        return topic_id;
    }
}

Да, я должен использовать эту старую технологию, к сожалению.

У меня были подобные проблемы с другим классом, но это, казалось, было исправлено удалением ArrayList это было внутри, но мне это действительно нужно ArrayList,

Почему я получаю эту ошибку?

РЕДАКТИРОВАТЬ: я избавился от всех ссылок на java.sql.Date, следующим образом:

package jspf.common;

public class ForumPost extends java.lang.Object implements java.io.Serializable {

    private String poster;
    private String content;
    private int topic_id;
    private int post_id;
    private long time;

    /**
     * Creates a new ForumPost object.
     * @param poster The username of the user that posted the post.
     * @param content The body/content of the post.
     * @param topic_id The topic ID that this post replies to.
     * @param post_id This post's ID.
     */
    public ForumPost() {
    }

    public ForumPost(int post_id, int topic_id, String poster, String content, long time) {
        this.poster = poster;
        this.content = content;
        this.topic_id = topic_id;
        this.post_id = post_id;
        this.time = time;
    }

    public long getTime() {
        return time;
    }

    public String getContent() {
        return content;
    }

    public int getPost_id() {
        return post_id;
    }

    public String getPoster() {
        return poster;
    }

    public int getTopic_id() {
        return topic_id;
    }
}

И я все еще получаю ту же ошибку. Я не понимаю, в чем проблема.

1 ответ

Решение

Я нашел проблему. Типы значений, определенные в документации J2EE 1.4, должны содержать методы getter и setter, мой класс содержал только методы getter.

Типы значений

Тип значения - это класс, состояние которого может передаваться между клиентом и удаленной службой в качестве параметра метода или возвращаемого значения. Например, в приложении для университетской библиотеки клиент может вызвать удаленную процедуру с параметром типа значения с именем Book, классом, содержащим поля Title, Author и Publisher.

Для поддержки JAX-RPC тип значения должен соответствовать следующим правилам:

  • Он должен иметь открытый конструктор по умолчанию.
  • Он не должен реализовывать (прямо или косвенно) интерфейс java.rmi.Remote.
  • Его поля должны поддерживать типы JAX-RPC.

Тип значения может содержать открытые, закрытые или защищенные поля. Поле типа значения должно соответствовать следующим требованиям:

  • Публичное поле не может быть окончательным или временным.
  • Непубличное поле должно иметь соответствующие методы получения и установки.

Источник: http://docs.oracle.com/javaee/1.4/tutorial/doc/JAXRPC4.html

Другие вопросы по тегам