springmvc代码生成(java springMVC)
admin 发布:2022-12-19 15:38 139
今天给各位分享springmvc代码生成的知识,其中也会对java springMVC进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、springmvc框架如何实现像webservice一样通过wsdl2Java生成客户端代码
- 2、如何把springmvc model 生成pdf文件
- 3、谁有 最流行的java后台框架 springmvc mybaits 集代码生成器
- 4、如何在eclipse中搭建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站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-04java简易计算器源代码(简易计算器编程java)[20240504更新]
- 05-04java多线程代码(java 多线程)[20240504更新]
- 05-04html图片源代码(html代码生成图片)[20240504更新]
- 05-01jeebbs源代码(jeesite代码生成)[20240501更新]
- 05-01html5留言板源代码(java留言板代码)[20240501更新]
- 04-30java多线程实例代码(多线程实例子)[20240430更新]
- 04-29java代码片段库工具(Java代码片段运行在哪里)[20240429更新]
- 04-29java无参计算器代码(JAVA计算器代码)[20240429更新]
- 04-29java象棋人机对战代码(象棋 人机对战)[20240429更新]
- 04-29恐龙快打源代码(java恐龙快打)[20240429更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接