当前位置:首页 > 代码 > 正文

springmvc代码生成(java springMVC)

admin 发布:2022-12-19 15:38 139


今天给各位分享springmvc代码生成的知识,其中也会对java springMVC进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

springmvc框架如何实现像webservice一样通过wsdl2Java生成客户端代码

在用到web service时,如果是调用自己开发的web service还好,可以有一个方法的接口或参数对象实体类什么的,但如果是调用第三方的服务,除了得到web service服务地址的wsdl文档外,没有任何实质性编码的东西,写原生调用太麻烦,这时就需要自己写一个方法的接口类。

这个,目前已经有比较成熟的工具,可以自动生成,下面作一下简单的介绍。

apache的wsdl2java工具,目前貌似CXF和axis各有一套,使用方式大同小异,但生成的代码会有所区别,这时说的是CXF提供的wsdl2java工具。

wsdl2java用法:

wsdl2java -p com -d src -all  aa.wsdl

-p  指定其wsdl的命名空间,也就是要生成代码的包名:

-d  指定要产生代码所在目录

-client 生成客户端测试web service的代码

-server 生成服务器启动web  service的代码

-impl 生成web service的实现代码

-ant  生成build.xml文件

-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.

详细用法见:

一开始使用了CXF的这套工具,发现不是很方便,毕竟依赖CXF提供的工具jar包,个人不是很喜欢用。

后来发现JDK居然也自带了对web service生成java代码的功能,貌似1.6版本开始的,试用后发现效果十分不错,果断投入它的怀抱。下面作下简单的介绍,以备忘。

打开jdk下的bin目录 看下能否找到"wsimport.exe"这个文件

一般情况下都会有

如果没有则说明你的JDK不支持这个功能

然后在DOS窗口下输入wsimport 敲回车

如果提示错误的话 说明你的JDK环境变量还没有配好

一句话总结,如果你在dos窗口下输入wsimport正常,就可以

如果OK的话 输入以下命令就可以将wsdl文件生成java文件了

wsimport   -keep -p com.llg.ws2 -s g:/ws

参数说明

wsimport 这个是必须的 该工具的名称

  wsdl文件

-keep  是否生成源文件

-p com.llg.ws2  生成后的java包名

-s g:/ws    生成后放哪个目录

但是前几天,在对一个第三方提供的web service使用该工具生成java代码的时候,居然出错了,网上查找后终于找到原因。

使用cxf wsdl2java或javax wsimport工具的时候,可能会遇到关于生成的Response类文件名冲突的问题

Console代码

WSDLToJava Error: Thrown by JAXB : A class/interface with the same name "***" is already in use. Use a class customization to resolve this conflict.

目前可选择的方案:

apache的wsdl2java工具,使用-autoNameResolution自动处理

wsdl2java -autoNameResolution 

JDK自带的工具

wsimport -p com.test.client -keep  -B-XautoNameResolution

2.如果web service是己方开发的,可以修改代码,使用自定义bindings,详细可看sun webservice文档

例如:

Java代码

public interface ValidateCCService

@WebMethod

@WebResult(name = "response")

public ValidateCCResponse validateCC(@WebParam(name = "request")ValidateCCRequest request);

这个情况下定义的方法名,如果使用工具生成客户端代码,很可能存在Response冲突,因为定义的wsdl中会有一个关于接口方法的message

wsdl:message name="validateCCResponse"

/wsdl:message

方法名定义的message与接口定义返回的ValidateCCResponse,在工具生成客户端代码时就会产生命名冲突。

但是通过更改接口方法名为:

Java代码

public interface ValidateCCService

@WebMethod

@WebResult(name = "response")

public ValidateCCResponse validate(@WebParam(name = "request")ValidateCCRequest request);

即可解决该冲突,

如何把springmvc model 生成pdf文件

本文先叙述,如何操作PDF模板生成PDF文件,再说明在SpringMVC中如何根据PDF模板生成PDF文件。

使用PDF模板生成PDF文件需要以下几个步骤:

下面按步骤说明:

1. 使用Microsoft Office Word画好模板

此步骤就不详述了,就是一个普通的Word文件(template.docx)。给个示例截图:

2. 使用Adobe Acrobat X Pro将Word文件转换为带表单字段的PDF模板文件

1) 打开Adobe Acrobat X Pro

2) 选择“创建PDF表单”

3) 选择源:(PDF、Word、Excel或其它文件类型),下一步

4) 定位Word文件路径,下一步

5) Adobe Acrobat X Pro会自动猜测表单字段位置,如图

6) 一般生成的表单字段都不符合我们的要求,选中删除即可。

7) 点击右键选择文本框,拖动到适当的位置,设置好域名称,字号,字体等。

8) 保存模板文件。(template.pdf)

3. 使用itext操作PDF模板,填充数据,生成PDF文件

1) 需要jar包:itext.jar、itextAsian.jar

2) 核心代码:

package personal.hutao.test;

import java.io.ByteArrayOutputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import java.util.HashMap;

import java.util.Map;

import org.junit.Test;

import com.lowagie.text.DocumentException;

import com.lowagie.text.pdf.AcroFields;

import com.lowagie.text.pdf.PdfReader;

import com.lowagie.text.pdf.PdfStamper;

public class TestPdf {

@Test

public void test() throws IOException, DocumentException {

String fileName = "D:/template.pdf"; // pdf模板

PdfReader reader = new PdfReader(fileName);

ByteArrayOutputStream bos = new ByteArrayOutputStream();

PdfStamper ps = new PdfStamper(reader, bos);

AcroFields fields = ps.getAcroFields();

fillData(fields, data());

ps.setFormFlattening(true);

ps.close();

OutputStream fos = new FileOutputStream("D:/contract.pdf");

fos.write(bos.toByteArray());

}

public void fillData(AcroFields fields, MapString, String data) throws IOException, DocumentException {

for (String key : data.keySet()) {

String value = data.get(key);

fields.setField(key, value);

}

}

public MapString, String data() {

MapString, String data = new HashMapString, String();

data.put("borrower", "胡桃同学");

return data;

}

}

3) 打开contract.pdf,如图

至此,就实现了根据PDF模板生成PDF文件。

SpringMVC的视图中已提供了对PDF模板文件的支持:org.springframework.web.servlet.view.document.AbstractPdfStamperView。那么只需要配置好此视图就可以了。具体分为以下步骤:

1) 实现抽象类 AbstractPdfStamperView

package personal.hutao.view;

import java.io.IOException;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.view.document.AbstractPdfStamperView;

import com.lowagie.text.DocumentException;

import com.lowagie.text.pdf.AcroFields;

import com.lowagie.text.pdf.PdfStamper;

public class PdfStamperView extends AbstractPdfStamperView {

public static final String DATA = "data";

public static final String FILENAME = "mergePdfFileName";

@SuppressWarnings("unchecked")

@Override

protected void mergePdfDocument(MapString, Object model,

PdfStamper stamper, HttpServletRequest request,

HttpServletResponse response) throws Exception {

response.setHeader("Content-Disposition", "attachment;filename=" + new String(model.get(FILENAME).toString().getBytes(), "ISO8859-1"));

AcroFields fields = stamper.getAcroFields();

fillData(fields, (MapString, String) model.get(DATA));

stamper.setFormFlattening(true);

}

private void fillData(AcroFields fields, MapString, String data)

throws IOException, DocumentException {

for (String key : data.keySet()) {

String value = data.get(key);

fields.setField(key, value);

}

}

}

2) 在SpringMVC的配置文件中配置视图

!-- 按照BeanName解析视图 --

bean class="org.springframework.web.servlet.view.BeanNameViewResolver"

property name="order" value="1" /

/bean

!-- 定义Pdf模版视图 --

bean id="contract" class="personal.hutao.view.PdfStamperView"

property name="url" value="/WEB-INF/template/template.pdf" /

/bean

3) Controller中的业务逻辑处理

package personal.hutao.controller;

import static personal.hutao.view.PdfStamperView.DATA;

import static personal.hutao.view.PdfStamperView.FILENAME;

import java.util.HashMap;

import java.util.Map;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import com.coamctech.sample.commons.controller.BaseController;

@RequestMapping("/contract")

@Controller

public class TestController {

@RequestMapping("/export/pdf")

public String exportPersonalCreaditLoanContract(Model model) {

model.addAttribute(DATA, data());

model.addAttribute(FILENAME, "XXX贷款合同");

return "contract";

}

private MapString, String data() {

MapString, String data = new HashMapString, String();

data.put("borrower", "胡桃同学");

return data;

}

}

谁有 最流行的java后台框架 springmvc mybaits 集代码生成器

你是想说jar包文件吧,教你一个别人我都不告诉的技巧,打开浏览器,百度,spring下载

如何在eclipse中搭建springmvc

搭建一个maven项目,mvc架构,web端使用springmvc,主要记录下搭建时遇到的问题

1.主pom.xml文件语句 名称为hibeauty-modules

Java代码

mvn archetype:generate -DgroupId=com.hibeauty -DartifactId=hibeauty-modules -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

进入目录,分别建立webapp项目以及普通的maven项目。

首先,修改pom.xml文件,把packaging修改为pom,version改为1.0

进入到hibeauty-modules,运行以下命令,项目为名称为hibeauty-web,这是一个webapp项目,之后要单独处理一下。

Java代码

mvn archetype:generate -DgroupId=com.hibeauty -DartifactId=hibeauty-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

web依赖的service的名称为hibeauty-business,进入到hibeauty-modules,运行以下命令,这是一个普通maven项目

Java代码

mvn archetype:generate -DgroupId=com.hibeauty -DartifactId=hibeauty-business -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

注意:此时的webapp项目运行mvn eclipse:eclipse并不能被eclipse认可为一个web项目,也就是说你的eclipse里的tomcat不能认出这个web项目,需要运行的是

Java代码

mvn eclipse:eclipse -Dwtpversion=2.0

另外,如果需要下载对应jar包的源码,需要运行

Java代码

mvn eclipse:eclipse -DdownloadSource=true

2.在主pom对应的文件夹里运行 mvn clean install eclipse:eclipse 这样就完成了pom文件中的jar包下载,并且生成了eclipse的对应加载文件,使eclipse能够认出两个bundle了

3.进入到eclipse里面,在tomcat里面导入webapp项目,然后再server里面运行,如果报错的内容是找不到类似于

Java代码

org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException:

org.springframework.web.context.ContextLoaderListener

Error configuring application listener of class org.springframework.web.util.Log4jConfigListener

java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener

这样,但是如果你在java build path的lib里面又能看到这些包,就需要把这些文件从java build

path里面复制到Deployment Assembly里面。具体方法properties-Deployment

Assemble-Add-java build path

即可解决。同理如果出现找不到依赖的project的错误,properties-Deployment

Assemble-Add-project引进来即可

最后,这次框架搭建,我分别用了intellij idea 以及eclipse ,

我的感觉是idea适合搭建框架,因为他对xml文件的支持很好,会自动去找引入的java文件是否存在并提示用户,这方面eclipse就比较弱。另外

idea的maven支持很好,对于框架搭建的环境要求很低,很多环境配置他自动帮你做了,比如上面的1,2,3步骤,都是针对eclipse的做法。另

外idea还有个很牛的图示类依赖关系的功能。

但是在代码开发时,eclipse是一个不错的选择。

1 .他有方便的快捷键

2 .svn比idea强,尤其是在增加删除文件的时候。

3 .让我开发时坚定选择eclipse的主要原因是eclipse的报错机制很强,在左边的package explorer可以很清楚的看到出现的错误,当然,前提是开启了build automatically,并且比idea显眼的多

4 .idea不会把当前文件跟左边的目录自动对应,即使打开了那个roll的开关也会经常出问题。

springmvc代码生成的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java springMVC、springmvc代码生成的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/10712.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载