首先我们的eclipse上有一个java的web项目,其中的一个类,DAO类名为MaraDao.java,它所能提供的功能是查询数据库并返回其中的字符串。我们在eclipse上用testNG运行它看看它原本的工作:
运行结果:就是在console中显示数据库读取出来的字符串。
test代码
package com.tsmi.mysql.dao;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.testng.AbstractTransactionalTestNGSpringContextTests;
import org.testng.annotations.Test;
import com.tsmi.mysql.domain.Mara;
@ContextConfiguration("classpath*:/mysqlHibernateContext.xml")
public class MaraDaoTest extends AbstractTransactionalTestNGSpringContextTests{
private MaraDao md2;
public MaraDao getMd2() {
return md2;
}
@Autowired
public void setMd2(MaraDao md2) {
this.md2 = md2;
}
@Test
public void getMatnr() {
List<Mara> rlist = md2.getMatnr();
int i1 = rlist.size();
System.out.println(i1);
for (int i = 0; i < i1; i++) {
Mara m2 = rlist.get(i);
String sSn = m2.getsMatnr();
String sGhdw = m2.getsEname();
System.out.println(sSn+" "+sGhdw);
}
}
}
MaraDAO.java的代码如下:
package com.tsmi.mysql.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowCallbackHandler;
import org.springframework.stereotype.Repository;
import com.tsmi.mysql.domain.Mara;
@Repository
public class MaraDao {
private JdbcTemplate jdbcTemplate;
@Autowired
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
final static String SELECT_TOP_50 = "select * from mara limit 50";
public List<Mara> getMatnr(){
final List<Mara> rml = new ArrayList<Mara>();
jdbcTemplate.query(SELECT_TOP_50, new Object[] { }, new RowCallbackHandler() {
public void processRow(ResultSet rs) throws SQLException {
Mara ma1 = new Mara();
ma1.setsMatnr(rs.getString("matnr"));
ma1.setsEname(rs.getString("ename"));
rml.add(ma1);
}
});
return rml;
}
}
上面展示的java代码是非常普通的spring代码,下面我们要把上述类发布成web service。
点击Launch按钮测试,会弹出浏览器,如下图
点finish按钮以后
web service发布之后,按照发布过程中的设置eclipse为我们自动创建了一个web service client项目,如下图所示:
另外原有的项目也发生了变化:
这个自动创建的client项目运行如下所示: