三步學會用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中出現錯誤,有spring的jar包不能從遠程下載。pom.xml中提示錯誤如下:

                圖:maven中不能下載的錯誤

這個可能就得借助代理服務器或者翻牆軟件了,沒什么好的辦法,因為這個是無法訪問遠程的鏈接,去找一款翻牆軟件吧!

2、執行maven install的時候提示java的版本過低,出現的錯誤如下:

View 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工程,出現的錯誤如下:

View 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就應該可以部署成功了。

 

[源碼下載]

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM