接下来就是我们要创建的web工程了,为了简单,我们直接利用virgo所带的模板来新建工程,控制层使用的是spring mvc 3。

创建web工程

打开STS,新建工程,我们选择Sprinng Template Project

三步学会用spring开发OSGI——(第三步:web篇)_spring

          图:新建spring template project

选择Spring MVC Project

三步学会用spring开发OSGI——(第三步:web篇)_java_02

        图:模板选择

向下,然后输入工程名和包名,就是我涂红的两部分

三步学会用spring开发OSGI——(第三步:web篇)_java_03

          图:输入工程名及包名

点击完成,中间可能需要下载文件,正常选择下载就可以了。

然后看我们的工程,工程结构的目录如下,其实就是一个标准的maven web工程

三步学会用spring开发OSGI——(第三步:web篇)_spring_04

    图:工程结构

工程创建完成后,我们执行一下maven clean和maven install,如果没有问题,工程上的错误提示就会消失。

我们将工程加入到virgo中,其实跟其它应用服务器的处理方式是一样的,如下图:

三步学会用spring开发OSGI——(第三步:web篇)_spring_05

    图:virgo部署应用

然后我们启动virgo。

当提示

三步学会用spring开发OSGI——(第三步:web篇)_云计算_06

                  图:virgo启动成功

说明应用已经成功启动了。

我们在浏览器中输入

​http://localhost:8080/EchoSpringmvc/​

就能看到可以使用的工程了。

三步学会用spring开发OSGI——(第三步:web篇)_java_07

      图:应用运行

再向下的开发其实和前边差不多,就是如何处理模块之间的关系,如何整合应用,如何划分模块。

遇到问题

1、maven中出现错误,有spring的jar包不能从远程下载。pom.xml中提示错误如下:

三步学会用spring开发OSGI——(第三步:web篇)_eclipse_08

                图:maven中不能下载的错误

这个可能就得借助代理服务器或者FQ软件了,没什么好的办法,因为这个是无法访问远程的链接,去找一款FQ软件吧!

2、执行maven install的时候提示java的版本过低,出现的错误如下:

三步学会用spring开发OSGI——(第三步:web篇)_java_09三步学会用spring开发OSGI——(第三步:web篇)_osgi_10View Code

1 [ERROR] Unable to locate the Javac Compiler in:
2 D:\Program Files\Java\jre6\..\lib\tools.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 Files\Java\jdk1.6.0_21\jre\bin\javaw.exe

注意

要在eclipse.ini文件中-startup之前设置这一行

2、window-->preferences-->java-->Installed JREs:将路径设置成jre的路径

              图:配置JDK

3、virgo中不能部署war工程,出现的错误如下:

三步学会用spring开发OSGI——(第三步:web篇)_java_09三步学会用spring开发OSGI——(第三步:web篇)_osgi_10View Code

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的安装目录的repository\ext下,找到配置文件 org.eclipse.virgo.web.properties

原来里边设定的值是WABHeaders=strict

我们将它改成WABHeaders=defaulted就应该可以部署成功了。


​[源码下载]​



  1. ​三步学会用spring开发OSGI——(第一步:环境篇)​
  2. ​三步学会用spring开发OSGI——(第二步:工程篇)​
  3. ​三步学会用spring开发OSGI——(第三步:WEB篇)​




作者:​​张锋​

本文版权归作者,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。

更多精彩文章可以观注

微信公众号 三步学会用spring开发OSGI——(第三步:web篇)_云计算_13