小弟尝试着用myeclipse生成web service,但总是报Unable to create JAXBContext错误
package org.course.design.bean;public class Customer {
private String cid;  //客户编号
private String from;  //查询起始日期
private String to;    //查询截止日期 public Customer(String cid, String from, String to) {
super();
this.cid = cid;
this.from = from;
this.to = to;
}

public String getCid() {
return cid;
} public void setCid(String cid) {
this.cid = cid;
} public String getFrom() {
return from;
} public void setFrom(String from) {
this.from = from;
} public String getTo() {
return to;
} public void setTo(String to) {
this.to = to;
}}
package org.course.design.bean;public class Sale {
private String cid;
private String gid;
private String salesTime;
private int goodsCount; public String getCid() {
return cid;
} public void setCid(String cid) {
this.cid = cid;
} public String getGid() {
return gid;
} public void setGid(String gid) {
this.gid = gid;
} public String getSalesTime() {
return salesTime;
} public void setSalesTime(String salesTime) {
this.salesTime = salesTime;
} public int getGoodsCount() {
return goodsCount;
} public void setGoodsCount(int goodsCount) {
this.goodsCount = goodsCount;
}
}
package org.course.design.webservice;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;import org.course.design.bean.Customer;
import org.course.design.bean.Sale;public class QueryFun {
// 输入客户对象,查询数据库,返回一个销售记录集合
public  List<Sale> query(Customer c){
//查询语句
String queryString = "select * from sale where cid='"+c.getCid()+"'";

//对起始日期和截止日期进行处理,仅当二者皆不为空的时候进行结合查询,否则只进行客户编号查询
if(!c.getFrom().equals("") && !c.getTo().equals("")){
queryString = queryString + " and salesTime between '" + c.getFrom()  
             + "' and '" + c.getTo() + "'";
}

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
        List<Sale> sales = new ArrayList<Sale>();
        
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost/xmlcoursedesign", "root", "333333");
stmt = conn.createStatement();
rs = stmt.executeQuery(queryString);

while (rs.next()) {
Sale s = new Sale();
s.setCid(rs.getString("cid"));
s.setGid(rs.getString("gid"));
s.setSalesTime(rs.getString("salesTime"));
s.setGoodsCount(rs.getInt("goodsCount"));

sales.add(s);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally{
try{
if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}

return sales;
}
}
求有经验的哥哥帮手....

解决方案 »

  1.   

    你用的是什么 xfire axis2?
      

  2.   

    你的 wsdl文件地址 对么?
      

  3.   

    我是用myeclipse根据QueryFun类直接生成。
      

  4.   

    终于找到原因了,是JAX-WS默认只支持int,String类型的数据返回客户端,但就是算返回的String类型数据,若服务端用了自定义复杂类型还是会提示那个错误。我们应该把自定义复杂类型放在List<class>中,然后返回List。在客户端时再用Response获取返回的List,然后JAX-WS会自动从中提取自定义class,这样便可传回客户信息。希望能有帮助。
    哎,终于搞好了!
      

  5.   

    能详细一点么,我在网上找了,好多都没有解决,能不能给个demo,解决一下这个问题,目前还没有看到这样子的demo!做一个出来,也成大神了!我的貌似就是一个list<bean>,怎么操作,我是一个菜鸟!求指导!
      

  6.   

    解决问题了!这里说的没错,是可以返回list的,
    我的查数据的只有一个类,没有那些有get、set的类