Luboš Račanský
7.2.2012

Od Sysdeo v Eclipse k tc Serveru v STS



Při vývoji webových aplikací používáme Eclipse IDE. Z workspace dostáváme Maven závislosti na Tomcat pomocí pluginu Sysdeo. Toto řešení funguje, ale není ideální. Nastavení aplikace lze ovšem jednoduše upravit tak, aby šla spouštět na tc Serveru přímo z STS (SpringSource Tool Suite)

Proč měnit Sysdeo za tc Server v STS?
Kromě toho, že se Sysdeo musíte myslet na ruční spouštění buildu (sysdeo-tomcat:generate), tak je navíc potřeba nahrát do Tomcat lib DevLoader.jar a modifikovat konfiguraci /conf/Catalina/localhost/myApp.xml.

To je důvod, proč někteří kolegové přešli na IntelliJ Idea. V neposlední řadě STS přináší, což pro mě je největší lákadlo, profiler Spring Insight.
Nejprve potřebujete zpřístupnit volbu Run As -> Run on Server. Toho docílíte tím, že v nastavením projektu (Properties -> Project Facets) přidáte facet Dynamic Web Modul (vyžaduje Java facet). Jste-li dítětem štěstěny, tak již nyní se vám podaří spustit aplikaci na tc Serveru.

S největší pravděpodobností se ale aplikace nejspíš nebude správně deployovat do /home/user/springsource/vfabric-tc-server-developer-2.6.1.RELEASE/spring-insight-instance/wtpwebapps/myApp (výchozí instalace na Linuxu, uživatel user, aplikace myApp). Překontrolujte soubor org.eclipse.wst.common.project.facet.core.xml v adresáři .settings

 <?xml version="1.0" encoding="UTF-8"?>
  <faceted-project>
    <fixed facet="wst.jsdt.web"/>
    <installed facet="java" version="1.6"/> 
    <installed facet="jst.web" version="2.4"/>
    <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>

 

Dále soubor org.eclipse.wst.common.component tamtéž

<?xml version="1.0" encoding="UTF-8"?>
  <project-modules id="moduleCoreId" project-version="1.5.0">   <wb-module deploy-name="myAppl"> <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
  <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
  <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
  <property name="context-root" value="myApp"/>
  <property name="java-output-path" value="target/classes"/>   </wb-module>
</project-modules> 

 

V souboru .classpath budete mít svoje specifické nastavení, nicméně neměla by tam chybět násludující část.

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
  <attributes>
    <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
  </attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/> 
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> 

 

Nyní můžete aplikaci spouštět na tc Serveru z STS a využívat možností profileru Spring Insight (o tom v některém z dalších příspěvků).

Vaše emailová adresa nebude zveřejněna

Komentáře

Děkujeme za váš komentář
Další
  • dan

    Ahoj, ja jsem pri vyvoji prestal tomcat pouzivat uplne, daleko jednodussi mi prijde jetty a Start trida.