通过webservice发布静态页面

要想通过webservice发布静态化页面也就是freemaker  首先你要有一个模板页面其次你得写一个服务端实现类和接口
public class EbWSItemServiceImpl implements EbWSItemService {

	@Autowired
	private IEbItemDao itemDao;
	public String publishItem(Long itemId, String password) throws Exception {
		if(StringUtils.equals(pass, password)){
			EbItem item = itemDao.findItemDetailById(itemId);
	    	
	    	Map<String, Object> map = new HashMap<String, Object>();
	    	map.put("item", item);
	    	FMutil fMutil = new FMutil();
	    	fMutil.ouputFile("productDetail.ftl", item.getItemId()+".html", map);
			return "success";
		}else{
			return "password error";
		}
	}

}

这是我的服务端实现类其中的FMutil是一个生成静态化页面的类

public class FMutil {
	
	/**
	 * 
	 * @param ftlName:模板名
	 * @param fileName:生成的html名字
	 * @param map 数据库中的数据
	 * @throws Exception
	 */
	public void ouputFile(String ftlName, String fileName,  Map<String, Object> map) throws Exception{
		//创建fm的配置
		Configuration config = new Configuration();
		//指定默认编码格式
		config.setDefaultEncoding("UTF-8");
		//设置模板的包路径
		config.setClassForTemplateLoading(this.getClass(), "/com/cb/ecps/ftl");
		//获得包的模板
		Template template = config.getTemplate(ftlName);
		//指定文件输出的路径
		String path = "D:/JAVA_EE/workspace/ecps-parent/ecps-protal/src/main/webapp/static";
		//定义输出流,注意的必须指定编码
		Writer writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(path+"/"+fileName)),"UTF-8"));
		//生成模板
		template.process(map, writer);
	}
	
	
}
通过这个类指定生成地址 字符编码 就可以生成相应的代码  但是我们要在项目里使用它远远没有这么简单  

接下来我们需要将它发布到服务器上  要想发布到服务器上需要如下配置

cxf-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
	xmlns:jaxrs="http://cxf.apache.org/jaxrs" xmlns:cxf="http://cxf.apache.org/core"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
          http://www.springframework.org/schema/beans/spring-beans.xsd
            http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
            http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
            http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">

	<!-- 引入CXF Bean定义如下,早期的版本中使用 -->
	<import resource="classpath:META-INF/cxf/cxf.xml" />
	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
	<!-- 
		address:
		http://localhost:8080/ecps-portal/[url-partten]/address
		
		如果不加/  页面则取不到相应路径
	 -->
	<jaxws:server id="publishItem" address="/publishItem" serviceClass="com.cb.ecps.ws.service.EbWSItemService">
		<jaxws:serviceBean>
			<bean class="com.cb.ecps.ws.service.impl.EbWSItemServiceImpl"></bean>
		</jaxws:serviceBean>
	</jaxws:server>        
</beans>
web.xml
 <!--发布webservice  一旦访问service下的类服务器就将该webservice发布出去-->
	<servlet>
		<servlet-name>cxf</servlet-name>
		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>cxf</servlet-name>
		<url-pattern>/service/*</url-pattern>
	</servlet-mapping>

在你要生成的目录下打开cmd命令窗口 输入 wsdl2java -d. -p 包名 发布的网址(例如http://localhost:8080/项目名/service)

这样就能生成客户端代码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值