2012-09-17 1 views
0

프로젝트를 위해 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를 컨테이너로 사용하고 있습니다.오류 : JAX-RPC 구조에 대한 잘못된 유형 : jspf.common.ForumPost

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; 
    } 
} 

을 그리고 난 여전히 같은 오류가 발생합니다. 나는 그 문제가 무엇인지 이해하지 못한다.

답변

0

문제점을 발견했습니다. J2EE 1.4 문서에 정의 된 값 유형은 getter 및 setter 메소드를 포함해야하며 my 클래스는 getter 메소드 만 포함해야합니다.

Value Types

A value type is a class whose state can be passed between a client and a remote service as a method parameter or return value. For example, in an application for a university library, a client might call a remote procedure with a value type parameter named Book, a class that contains the fields Title, Author, and Publisher.

To be supported by JAX-RPC, a value type must conform to the following rules:

  • It must have a public default constructor.
  • It must not implement (either directly or indirectly) the java.rmi.Remote interface.
  • Its fields must be supported JAX-RPC types.

The value type can contain public, private, or protected fields. The field of a value type must meet these requirements:

  • A public field cannot be final or transient.
  • A nonpublic field must have corresponding getter and setter methods.

출처 : http://docs.oracle.com/javaee/1.4/tutorial/doc/JAXRPC4.html#wp130601