三步学会用spring开发OSGI——(第三步:web篇)
接下来就是我们要创建的web工程了,为了简单,我们直接利用virgo所带的模板来新建工程,控制层使用的是spring mvc 3。
创建web工程
打开STS,新建工程,我们选择Sprinng Template Project
图:新建spring template project
选择Spring MVC Project
图:模板选择
向下,然后输入工程名和包名,就是我涂红的两部分
图:输入工程名及包名
点击完成,中间可能需要下载文件,正常选择下载就可以了。
然后看我们的工程,工程结构的目录如下,其实就是一个标准的maven web工程
图:工程结构
工程创建完成后,我们执行一下maven clean和maven install,如果没有问题,工程上的错误提示就会消失。
我们将工程加入到virgo中,其实跟其它应用服务器的处理方式是一样的,如下图:
图:virgo部署应用
然后我们启动virgo。
当提示
图:virgo启动成功
说明应用已经成功启动了。
我们在浏览器中输入
http://localhost:8080/EchoSpringmvc/
就能看到可以使用的工程了。
图:应用运行
再向下的开发其实和前边差不多,就是如何处理模块之间的关系,如何整合应用,如何划分模块。
遇到问题
1、执行maven install的时候提示java的版本过低,出现的错误如下:
1 [ERROR] Unable to locate the Javac Compiler in:
2 D:Program FilesJavajre6..libtools.jar
3 Please ensure you are using JDK 1.4 or above and
4 not a JRE (the com.sun.tools.javac.Main class is required).
5 In most cases you can change the location of your Java
6 installation by setting the JAVA_HOME environment variable.
解决方法:
1、在eclipse.ini文件中设置
-vm C:Program FilesJavajdk1.6.0_21jrebinjavaw.exe
注意
要在eclipse.ini文件中-startup之前设置这一行
2、window-->preferences-->java-->Installed JREs:将路径设置成jre的路径
图:配置JDK
2、virgo中不能部署war工程,出现的错误如下:
1 [2012-08-03 13:33:19.450] start-signalling-2 <DE0006E> Start failed for bundle 'EchoSpringmvc' version '0.0.0'. org.eclipse.virgo.kernel.deployer.core.DeploymentException: Web application failed to start
2 at org.eclipse.virgo.web.core.internal.WebBundleLifecycleListener.onStarted(WebBundleLifecycleListener.java:132)
3 at org.eclipse.virgo.kernel.install.artifact.internal.StandardArtifactStateMonitor.onStarted(StandardArtifactStateMonitor.java:247)
4 at org.eclipse.virgo.kernel.install.artifact.internal.AbstractInstallArtifact.asyncStartSucceeded(AbstractInstallArtifact.java:294)
5 at org.eclipse.virgo.kernel.install.artifact.internal.AbstractInstallArtifact.access$0(AbstractInstallArtifact.java:291)
6 at org.eclipse.virgo.kernel.install.artifact.internal.AbstractInstallArtifact$StateMonitorSignal.signalSuccessfulCompletion(AbstractInstallArtifact.java:229)
7 at org.eclipse.virgo.kernel.core.internal.BundleStartTracker$1.run(BundleStartTracker.java:143)
8 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
9 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
10 at java.lang.Thread.run(Thread.java:662)
11 Caused by: org.eclipse.gemini.web.core.WebApplicationStartFailedException: org.eclipse.gemini.web.core.spi.ServletContainerException: Web application at '/EchoSpringmvc' failed to start. Check the logs for more details.
12 at org.eclipse.gemini.web.internal.StandardWebApplication.start(StandardWebApplication.java:108)
13 at org.eclipse.virgo.web.core.internal.WebBundleLifecycleListener.onStarted(WebBundleLifecycleListener.java:122)
14 ... 8 common frames omitted
15 Caused by: org.eclipse.gemini.web.core.spi.ServletContainerException: Web application at '/EchoSpringmvc' failed to start. Check the logs for more details.
16 at org.eclipse.gemini.web.tomcat.internal.TomcatServletContainer.startWebApplication(TomcatServletContainer.java:125)
17 at org.eclipse.gemini.web.internal.StandardWebApplication.start(StandardWebApplication.java:91)
18 ... 9 common frames omitted
这个需要修改virgo的配置文件,我们到virgo的安装目录的repositoryext下,找到配置文件 org.eclipse.virgo.web.properties
原来里边设定的值是WABHeaders=strict 我们将它改成WABHeaders=defaulted就应该可以部署成功了。
- 对X86汇编的理解与入门
- BZOJ 2748: [HAOI2012]音量调节【二维dp,枚举】
- POJ 3264 Balanced Lineup【线段树区间查询求最大值和最小值】
- HDU 2289 Cup【高精度,二分】
- BZOJ 1083: [SCOI2005]繁忙的都市【Kruscal最小生成树裸题】
- [快学Python3]二分查找[策略优化版本]
- 微服务与SOA架构(4)
- 移动测试Appium之API手册
- BZOJ 1088: [SCOI2005]扫雷Mine【思维题,神奇的模拟+枚举】
- 浅谈关于特征选择算法与Relief的实现
- HDU 5752 Sqrt Bo【枚举,大水题】
- 移动测试 Appium源码初探
- UESTC 1599 wtmsb【优先队列+排序】
- BZOJ 1029: [JSOI2007]建筑抢修【优先队列+贪心策略】
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- AttributeError: 'list' object has no attribute 'keys'
- raise ValueError("Cannot convert {0!r} to Excel".format(value))
- ImportError: cannot import name 'Process' from 'multiprocessing'
- mac卸载mysql
- 不可错过的Webpack核心知识点
- APP+Web混合全局版的几种布署方法
- 关于合并pdf文件出现的问题
- Python中的with是测试常用到的资源打开利
- python批量运行py文件
- beautifulsoup的使用
- PWN:House Of Einherjar
- 2.用Python套用Excel模板,一键完成原亮样式
- Vmware Centos7 配置静态 ip 和 使宿主机和虚拟机互相 ping 通
- Hadoop安装成功之后,访问不了web界面的50070端口怎么解决?
- 2.1 注释