Apache CXF webservice 注入Spring Bean

时间:2025-02-16 09:53:23

webservice 接口定义:

package ;

import ;
import ;
import ;

@WebService
public interface AccountInsert {
	@WebMethod
	String insert(@WebParam(name="username") String username,@WebParam(name="password") String password,@WebParam(name="openid") String openid,@WebParam(name="type") String type,@WebParam(name="client_id") String client_id);
	
	@WebMethod
	String update(@WebParam(name="username") String username,@WebParam(name="password") String password,@WebParam(name="openid") String openid);
}

package ;

import ;
import ;
import ;

@WebService
public interface AccountDelete {
	@WebMethod
	String delete(@WebParam(name="username") String username,@WebParam(name="password") String password,@WebParam(name="openid") String openid);
}


webservice 接口定义实现类:

package ;

import ;
import ;

import ;

import ;

import ;
import ;
import ;
import ;
import ;
import ;

@WebService(endpointInterface = "", serviceName = "accountInsert", targetNamespace = "/")
public class AccountInsertImpl implements AccountInsert {
	@Resource
	private IAccountService accountService;

	@Override
	public String insert(String username, String password, String openId,
			String type, String client_id) {
		// TODO Auto-generated method stub
		String result = "";

		ErrorDesc desc = new ErrorDesc();
		if ((username)) {
			desc.setError_code("101");
			desc.setError_desc("用户名不能为空");

			result = (desc);
		}
		if ((password)) {
			desc.setError_code("102");
			desc.setError_desc("密码不能为空");

			result = (desc);
		}
		if ((openId)) {
			desc.setError_code("103");
			desc.setError_desc("唯一编码不能为空");

			result = (desc);
		}

		Account account = (username, password);
		if (account == null) {
			account = (openId);
			if (account == null) {
				account = new Account();
				(openId);
				(username);
				(password);
				(type);
				(client_id);

				int num = (account);
				if (num > 0) {
					desc.setError_code("106");
					desc.setError_desc("数据插入成功");
					result = (desc);
				} else {
					desc.setError_code("107");
					desc.setError_desc("数据插入失败");
					result = (desc);
				}
			} else {
				desc.setError_code("105");
				desc.setError_desc("唯一编码重复");
				result = (desc);
			}
		} else {
			desc.setError_code("104");
			desc.setError_desc("用户名或密码重复");

			result = (desc);
		}
		return result;
	}

	public IAccountService getAccountService() {
		return accountService;
	}

	public void setAccountService(IAccountService accountService) {
		 = accountService;
	}	

	@Override
	public String update(String username, String password, String openid) {
		// TODO Auto-generated method stub
		String result = "";

		ErrorDesc desc = new ErrorDesc();
		if ((username)) {
			desc.setError_code("101");
			desc.setError_desc("用户名不能为空");

			result = (desc);
			return result;
		}
		if ((password)) {
			desc.setError_code("102");
			desc.setError_desc("密码不能为空");

			result = (desc);
			return result;
		}
		if ((openid)) {
			desc.setError_code("103");
			desc.setError_desc("唯一编码不能为空");

			result = (desc);
			return result;
		}
		
		Account account = new Account();
		(openid);
		(password);
		(username);

		int num = (account);
		if (num > 0) {
			desc.setError_code("110");
			desc.setError_desc("数据更新成功");
			result = (desc);
			return result;
		} else {
			desc.setError_code("111");
			desc.setError_desc("数据更新失败");
			result = (desc);
			return result;
		}
	}

}


package ;

import ;
import ;

import ;

import ;
import ;
import ;
import ;

@WebService(endpointInterface = "", serviceName = "accountDelete", targetNamespace = "/")
public class AccountDeleteImpl implements AccountDelete {
	@Resource
	private IAccountService accountService;
	@Override
	public String delete(String username, String password, String openid) {
		// TODO Auto-generated method stub
		String result = "";

		ErrorDesc desc = new ErrorDesc();
		if ((username)) {
			desc.setError_code("101");
			desc.setError_desc("用户名不能为空");

			result = (desc);
			return result;
		}
		if ((password)) {
			desc.setError_code("102");
			desc.setError_desc("密码不能为空");

			result = (desc);
			return result;
		}
		if ((openid)) {
			desc.setError_code("103");
			desc.setError_desc("唯一编码不能为空");

			result = (desc);
			return result;
		}

		int num = (username, password,
				openid);
		if (num > 0) {
			desc.setError_code("108");
			desc.setError_desc("数据删除成功");
			result = (desc);
			return result;
		} else {
			desc.setError_code("109");
			desc.setError_desc("数据删除失败");
			result = (desc);
			return result;
		}
	}
	public IAccountService getAccountService() {
		return accountService;
	}
	public void setAccountService(IAccountService accountService) {
		 = accountService;
	}
	
	

}

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
	xmlns:xsi="http:///2001/XMLSchema-instance" xmlns:tx="/schema/tx"
	xmlns:aop="/schema/aop" xmlns:context="/schema/context"
	xmlns:jaxws="/jaxws"
	xsi:schemaLocation="/schema/beans
 /schema/beans/spring-beans-3.
 /schema/tx
 /schema/tx/spring-tx-3.
 /schema/aop
 /schema/aop/spring-aop-3.
 /schema/context
 /schema/context/spring-context-3.
 /jaxws
 /schemas/">

	<!--CXF配置 -->
	<import resource="classpath:META-INF/cxf/" />
	<import resource="classpath:META-INF/cxf/" />
	<import resource="classpath:META-INF/cxf/" />
	
	<bean  class="">		
	</bean>
	<bean  class="">
		<property name="accountService" ref="accountService"></property>
	</bean>
	<bean  class="">
		<property name="accountService" ref="accountService"></property>
	</bean>
	

	<!--服务端发布的webservice 
		在spring中使用jaxws:endpoint元素来暴露Web Service 
		id:指在spring配置的bean的ID 
		Implementor:指明具体的实现类
		Address:指明这个web service的相对地址 -->
	<jaxws:endpoint  implementor=""
		address="/HelloWorld" />
	<!--服务端发布的webservice 
		在spring中使用jaxws:endpoint元素来暴露Web Service 
		id:指在spring配置的bean的ID 
		Implementor:指明具体的实现类
		Address:指明这个web service的相对地址 -->	
	 <jaxws:endpoint  
                implementor="#accountInsertService" 
                address="/AccountInsert"> 
     </jaxws:endpoint> 
     <!--服务端发布的webservice 
		在spring中使用jaxws:endpoint元素来暴露Web Service 
		id:指在spring配置的bean的ID 
		Implementor:指明具体的实现类
		Address:指明这个web service的相对地址 -->	
	 <jaxws:endpoint  
                implementor="#accountDeleteService" 
                address="/AccountDelete"> 
     </jaxws:endpoint> 
	
</beans>