`

maven tomcat插件以及josso相关配置

 
阅读更多

阅读本文的时候,相信你已经喜欢上了Maven优美的管理方式, 但却为构建webapp而需手动发布到Tomcat发愁,maven插件可以帮你优雅的解决这个问题。笔者最近因为项目需要,和team成员对gringotts原有项目进行改造,从ant移植到maven,本来是件很简单的事情,但因为关联到josso单点登陆,折腾了好久,现将整个过程以及遇到的一些问题做纪录,希望给碰到类似问题的同学一些参考。

1 安装josso agent

去官网下载,然后配置。请参考 http://lelglin.iteye.com/admin/blogs/1866968

2.maven tomcat插件

  • Tomcat Maven plugin
  • Cargo plugin

我首先试用了Tomcat Maven plugin,非常便利,但是他运行的tomcat是内嵌的,无法加载我们需要josso agent。

pom.xml文件增加配置

<build>
		<plugins>
			<!-- tomcat -->
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat6-maven-plugin</artifactId>
				<version>2.0</version>
			</plugin>
		</plugins>
	</build>

 

然后google查找maven tomcat插件运行外部tomcat的方法,网上确实也找到一下类似的问题,没有合适的解决方案,放弃。

然后我们又尝试了Cargo plugin,它是一个基于标准方式发布Web应用程序到Java EE容器的瘦包装器,它能发布到多种Web服务器,如Geronimo、Glassfish、JBoss、Tomcat、Jetty、WebLogic等。这正是我们想要的。

配置

<build>
	    <finalName>projectName</finalName>
		<plugins>
			<plugin>
				<groupId>org.codehaus.cargo</groupId>
				<artifactId>cargo-maven2-plugin</artifactId>
				<configuration>
					<wait>true</wait>
					<container>
						<containerId>tomcat6x</containerId>
						<type>installed</type>
						<home>/Library/Tomcat</home>
					</container>
					<configuration>
						<type>existing</type>
						<home>/Library/Tomcat</home>
						<properties>
							<cargo.tomcat.manager.url>https://localhost:8080/manager</cargo.tomcat.manager.url>
							<cargo.remote.username>admin</cargo.remote.username>
							<cargo.remote.password>password</cargo.remote.password>
							<cargo.jvmargs>-Djava.security.auth.login.config="/Library/Tomcat/conf/jaas.conf"</cargo.jvmargs>
						</properties>
					</configuration>
					
				</configuration>
				<executions>
					<execution>
						<id>start-container</id>
						<phase>pre-integration-test</phase>
						<goals>
							<goal>deployer-deploy</goal>
							<!-- Only local containers can be started <goal>start</goal> -->
						</goals>
					</execution>
					<execution>
						<id>stop-container</id>
						<phase>post-integration-test</phase>
						<goals>
							<goal>deployer-undeploy</goal>
							<!-- Only local containers can be started <goal>stop</goal> -->
						</goals>
					</execution>
					<execution>
						<id>verify-deploy</id>
						<phase>install</phase>
						<goals>
							<goal>deployer-deploy</goal>
						</goals>
					</execution>
					<execution>
						<id>clean-undeploy</id>
						<phase>pre-clean</phase>
						<goals>
							<goal>deployer-undeploy</goal>
							<!-- Only local containers can be started <goal>stop</goal> -->
						</goals>
					</execution>

				</executions>
			</plugin>
		</plugins>
	</build>
	<dependencies>

 

 

问题和注意事项:

1.传递jvm参数,http://lelglin.iteye.com/admin/blogs/1866968 上的方式行不通,需要在<cargo.jvmargs>

<configuration>
						<type>existing</type>
						<home>/Library/Tomcat</home>
						<properties>
							<cargo.tomcat.manager.url>https://localhost:8080/manager</cargo.tomcat.manager.url>
							<cargo.remote.username>admin</cargo.remote.username>
							<cargo.remote.password>password</cargo.remote.password>
							<cargo.jvmargs>-Djava.security.auth.login.config="/Library/Tomcat/conf/jaas.conf"</cargo.jvmargs>
						</properties>
					</configuration>

 

 

 

2 安装josso agent的时候,会自动修改tomcat安装目录下server.xml

原本的这一行会被注释掉,改用josso自己的realm实现,这样就无法登陆tomcat manager,也就是无法通过插件部署。

 

<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

 

 

josso agent修改后的配置
<Realm appName="josso" className="org.josso.tc60.agent.jaas.CatalinaJAASRealm" debug="1" roleClassNames="org.josso.gateway.identity.service.BaseRoleImpl" userClassNames="org.josso.gateway.identity.service.BaseUserImpl"/>
 

后来shijun同学发现 ,可以在某个context下面配置jossorealm实现,这样josso agent能够拦截到该context下的request,又不影响tomcatmanager管理应用,具体如下

 <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
<Valve appName="josso" className="org.josso.tc60.agent.SSOAgentValve" debug="1">
    </Valve>
<Context path="/apiConsole" docBase="/Library/Tomcat/webapps/apiConsole" debug="1" reloadable="true">
        <Realm appName="josso" className="org.josso.tc60.agent.jaas.CatalinaJAASRealm" debug="1" roleClassNames="org.josso.gateway.identity.service.BaseRoleImpl" userClassNames="org.josso.gateway.identity.service.BaseUserImpl"/>
     </Context>
 

 

 

参考

http://jdonee.iteye.com/blog/774387

http://cargo.codehaus.org/Configuration+properties

分享到:
评论

相关推荐

    Maven Tomcat插件源码

    通过阅读源码,你可以了解到插件如何与Maven生命周期集成,如何解析配置,以及如何与Tomcat通信来执行部署和运行任务。源码分析可以帮助开发者解决遇到的问题,或者对其进行定制以满足特定需求。 在实际使用中,...

    Maven Tomcat 插件

    接下来,在项目的`pom.xml`文件中添加Maven Tomcat插件的相关配置: ```xml &lt;groupId&gt;org.codehaus.mojo &lt;artifactId&gt;tomcat-maven-plugin &lt;version&gt;1.1 &lt;url&gt;http://10.200.3.82:8888/manager&lt;/url&gt; ...

    Maven使用tomcat8-maven-plugin插件.docx

    使用 tomcat8-maven-plugin 插件可以简化项目的部署过程,无需手动配置 Tomcat 服务器。该插件可以自动将项目部署到 Tomcat 服务器上,并且可以自动配置 Tomcat 服务器的 settings。 结论 tomcat8-maven-plugin ...

    maven tomcat7改造后插件

    在springMVC 项目中存在两个web项目,一个前台展示系统,一个后台管理系统,前台展示需要用到后台上传的图片,为了能让前台使用,那么就需要给前台tomcat配置静态资源路径,这是需要改造tomcat的插件包, ...

    maven通过tomcat插件,如何运行Java Web项目 支持断点

    首先,我们需要在Maven的`pom.xml`文件中添加Tomcat插件的配置。这个插件通常选择`maven tomcat7-maven-plugin`或`maven tomcat9-maven-plugin`,具体取决于你的Tomcat版本。以下是一个基本配置示例: ```xml ...

    Maven和Tomcat插件

    Tomcat插件通常指的是`maven-tomcat-plugin`或`tomcat7-maven-plugin`,它允许开发者在Maven构建流程中直接部署应用程序到本地或远程的Tomcat服务器。例如,以下配置可以在打包完成后自动部署到本地Tomcat: ```xml...

    maven tomcat idea 配置

    本文将详细介绍如何在IntelliJ IDEA中配置Maven和Tomcat,以便进行高效且便捷的开发工作。 首先,让我们从Maven配置开始。Maven通过使用POM(Project Object Model)文件来管理项目的依赖关系,简化了构建过程。在...

    jenkins+maven-tomcat插件自动部署

    一旦所有配置都完成,Jenkins将能够自动从Git仓库获取代码,使用Maven进行构建,然后通过Tomcat Maven插件将应用部署到远程Tomcat服务器上。这个自动化流程显著提高了开发效率,减少了手动部署的错误和时间消耗。 ...

    tomcat-maven-plugin

    maven-tomcat-plugin让maven与tomcat配合得很好。它可以把应用部署到Tomcat服务器,也可以把tomcat作为内嵌服务器启动,就像jetty一样。 使用JPDA启动tomcat的远程调试功能。这样就能与eclipse配合起来,轻松地实现...

    maven tomcat 服务器

    通过在pom.xml文件中添加相应插件配置,开发者可以在命令行中执行简单的命令,如`mvn tomcat7:run`,即可启动Tomcat并自动部署项目。 **部署流程:** 1. 使用Maven进行编译、测试和打包,生成WAR文件。 2. 配置...

    maven的安装文件以及集成TOMCAT、eclipse的教程

    本教程将详细介绍如何安装Maven,以及如何在Eclipse集成Maven和Tomcat,帮助开发者更高效地进行Java Web项目的开发。 **一、Maven的安装** 1. **下载Maven**: Maven的安装包可以从官方网站Apache Maven ...

    maven实现tomcat插件的https环境

    在maven环境使用tomcat插件启动项目时,可以使用该命令修改tomcat插件为https环境。一般作为本地开发环境改为https应用。 线上则需要另外安装tomcat,并且修改server.xml实现https。 文档里只说明了maven的tomcat...

    在Eclipse中Tomcat和Maven插件相互配合进行热部署

    这个过程涉及到了源码管理和自动化构建工具Maven,以及集成开发环境Eclipse中的服务器适配器Tomcat,它们共同助力实现项目的热部署,即代码修改后无需重启服务器即可看到更新效果。 首先,Maven是一个强大的项目...

    Mac环境STS 配置Tomcat ,maven ,以及第一个maven项目的创建

    在mac下安装JDK,STS后,需要进行相关配置,该文档包含1.Tomcat的配置,2.Maven的配置,3.helloworld的创建及运行4.上述三个文档的所有相关软件包,按照文档一步步执行,即可完成helloworld的运行

    apache-maven的插件包:apache-maven-3.3.9-bin.zip

    标签中提到的"apache maven maven的插件"表明了主题与Apache Maven及其插件系统相关。Maven的插件系统允许开发者执行各种任务,如编译源代码、打包应用、执行测试、生成文档等。插件通过目标(Goals)来实现特定的...

    Maven添加Tomcat插件实现热部署代码实例

    在pom.xml文件中,我们需要添加Tomcat插件配置,以便实现Maven热部署。首先,我们需要添加以下配置: ```xml &lt;id&gt;tomcat7 &lt;username&gt;tomcat &lt;password&gt;tomcat ``` 这里,我们添加了一个名为tomcat7的服务器...

    idea中Tomcat配置遇到的错误.docx

    在 IDEA 中创建 Maven 项目时,可能会遇到 Tomcat 配置错误的问题,本文将详细介绍 Tomcat 配置遇到的错误、错误原因、解决方案,并讨论 Maven 项目的创建、版本选择、Maven 的 Tomcat 配置等相关知识点。...

    eclipse开发java程序必备插件(maven+tomcat+svn插件)

    本篇文章将详细讲解"Eclipse开发Java程序必备插件",包括Maven、Tomcat和SVN插件的用途、安装与使用。 首先,Maven是Apache软件基金会开发的一个项目管理和综合工具。Maven插件使得Eclipse能够更好地管理和构建Java...

Global site tag (gtag.js) - Google Analytics