日期:2014-05-18  浏览次数:20669 次

有关SPRING+CXF的问题。。跪求。。
刚开始研究CXF有好多疑问。。希望前辈们指教
已经将WSDL文件发布成功 
在本机上可以访问 http://localhost:8080/permiss/services/UserService?wsdl 得到XML文件
我在自己机器上测试方法
public static void main(String[] args) {         /       
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();         
factory.setServiceClass(UserInfoService.class);         
factory.setAddress     ("http://localhost:8080/permiss/services/UserService?wsdl");                 
UserInfoService service = (UserInfoService) factory.create();                 
String user = service.getUserInfo();        
System.out.println(user);  

方法如下:
@Service
@WebService(endpointInterface = "com.seven.webService.UserInfoService")
@SOAPBinding(style = Style.RPC)
public class UserInfoServiceImpl extends BaseService<User> implements UserInfoService {

private User user;
private UserDao userDao;
@Autowired
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
super.setDao(userDao);
}

public String getUserInfo() {
// TODO Auto-generated method stubf
return "success";
}
如果这样调用的话会调用成功的都返回的SUCCESS

但是如果我在方法中添加一条访问数据库的语句就报错啦。。           
        public String getUserInfo() {
// TODO Auto-generated method stubf
                userDao.findAll();
return "success";
}
我一共做了下面几个步骤
1.添加JAR包
2.在userService中添加下面注解
  @Service
  @WebService(endpointInterface = "com.seven.webService.UserInfoService")
  @SOAPBinding(style = Style.RPC)
3.web.xml加入CXF的配置文件
4.APPLICATIONcontext.xml中的代码如下。。
<!-- 配置spring提供的属性文件加载器 -->
<context:property-placeholder location="classpath:jdbc.properties"/>

<!-- 启用基于注解方式的IoC配置 -->
<context:component-scan base-package="com.seven"/>

<!-- 带c3p0连接池的数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>

<!-- 其它的一些优化参数 -->
<property name="minPoolSize" value="5"/>
<property name="maxPoolSize" value="30"/>
<property name="checkoutTimeout" value="1800"/>
<property name="maxStatements" value="20"/>
</bean>

<!-- ==============================DAO层 -->
<!-- Spring为Hibernate提供的一个SessionFactory实体类,它产生的Session会自动绑定到当前线程上-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate