Java WS 转换错误

标签 java web-services soap

我收到错误,但不知道为什么,

这是我的项目设置:

enter image description here

每当我运行引用 Book.java 的服务器方法时,我都会收到此错误消息

java.lang.ClassCastException: com.client.Book cannot be cast to com.server.Book

我不能在客户端和服务器上使用相同的类吗?

这是我的 Book 类的代码

*唯一的区别在于包声明

package com.client; /* on client side*/
package com.server; /* on server side */

import java.io.Serializable;

public class Book implements Serializable
{

/**
 * 
 */
private static final long serialVersionUID = 1L;
private String name, author;
private int copiesAvail;
private int daysToReturn;
public Book()
{

}

public Book (String name, String author)
{
    this.name = name;
    this.author = author;
    copiesAvail = 1;
    daysToReturn = 0;
}

// getters
public String getName() {return name;}
public String getAuthor() {return author;}
public int getCopiesAvail() {return copiesAvail;}
public int getDaysToReturn() {return daysToReturn;}

// setters
public void setName(String name) {this.name = name;}
public void setAuthor(String author) {this.author= author;}
public void setCopiesAvail(int copiesAvail) {this.copiesAvail = copiesAvail;}
public void setDaysToReturn(int daysToReturn) {this.daysToReturn = daysToReturn;}

public String toString()
{
    return "Name: " + getName()
            + "\nAuthor: " + getAuthor()
            + "\nNumber of Copies Available: " + getCopiesAvail();
}

}

什么可能导致此错误?

最佳答案

这两个类虽然名称相同,但却是两个完全不同、不兼容的类。客户端包和服务器包中的 Book 没有 Is-A 关系,因此强制转换肯定会失败。

您不必拥有两个具有完全相同实现的类。如果客户端和服务器都使用此类,则标准方法是将此类放在另一个包中,例如“common”,并在客户端和服务器代码之间共享。

关于Java WS 转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26808987/

相关文章:

c# - SOAP 返回数据,但 C# 返回空响应

web-services - 使用捕获的流量为现有 SOAP 服务生成 WSDL

java - 方法 next() Java 中的 NoSuchElementException

java - 如何返回收到的mongodb数据?

java - 将 wordpress 帖子中的数据提取到 Android 的最佳选择是什么?

wcf - 如何将数据推送到.NET CF客户端?

java - @SuppressWarnings ("unchecked") 的位置是否重要?

javascript - 在谷歌地图上显示路线网络服务结果时出错

android - 下载 XML 文件时出现异常

c - gsoap 2.8.10 和 2.8.11 及更高版本生成的 stdsoap.h 的区别