Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring-Loaded:与Spring MVC maven项目集成_Spring_Maven_Tomcat_Spring Mvc_Spring Loaded - Fatal编程技术网

Spring-Loaded:与Spring MVC maven项目集成

Spring-Loaded:与Spring MVC maven项目集成,spring,maven,tomcat,spring-mvc,spring-loaded,Spring,Maven,Tomcat,Spring Mvc,Spring Loaded,今天我在Spring网站上偶然发现了Spring加载的项目。我正试图将其集成到我一直在开发的SpringMVC中(使用Maven和TOMCAT) 按照项目页面上的说明,我下载了JAR文件,并在TOMCAT VM参数(Eclipse内部)中添加了以下内容: 我还禁用了TOMCAT中的“自动发布” 现在,一旦我启动TOMCAT并对控制器(或任何其他类)进行任何更改,我就不会看到任何热部署发生。是否有任何问题,或者是否需要其他配置 非常感谢您的任何输入。您确实需要在Tomcat中“自动发布”,因为更改

今天我在Spring网站上偶然发现了Spring加载的项目。我正试图将其集成到我一直在开发的SpringMVC中(使用Maven和TOMCAT)

按照项目页面上的说明,我下载了JAR文件,并在TOMCAT VM参数(Eclipse内部)中添加了以下内容:

我还禁用了TOMCAT中的“自动发布”

现在,一旦我启动TOMCAT并对控制器(或任何其他类)进行任何更改,我就不会看到任何热部署发生。是否有任何问题,或者是否需要其他配置

非常感谢您的任何输入。

您确实需要在Tomcat中“自动发布”,因为更改的.class文件不会复制到Tomcat部署应用程序的临时文件夹中

例如,在我的本地实例中,临时Tomcat部署文件夹是
[WORKSPACE\u folder]\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
。在这个文件夹中,我复制了EclipseWeb应用程序资源(类和其他文件),Tomcat将在这里收集这些资源进行部署。 当我更改一个类源代码时,会重新编译该类,并将其.class文件放置在
[WORKSPACE\u FOLDER]\[my\u web\u app\u FOLDER]\target
文件夹中。启用“自动发布”后,上述
target
文件夹中的.class文件将复制到
wtpwebapps
文件夹中,而禁用该选项后,将无法复制

“自动发布”并不意味着应用程序在Tomcat上重新部署,其更新的.class文件和其他文件也在
wtpwebapps
文件夹中更新


但是,您需要在Tomcat中禁用的是web模块的“自动重新加载”选项。双击在Eclipse中创建的Tomcat服务器,转到“模块”选项卡,单击web应用程序web模块,然后单击“编辑…”并取消选中“自动重新加载启用”。保存并重新启动您的Tomcat。

本周,我正在尝试SpringLoaded在Apache Tomcat 7上使用Petclinic进行快速演示,面临与此处讨论相同的问题。最后,我发现我需要将项目添加到Tomcat类路径中。
因此,在我的例子中,我在Eclipse中打开了Tomcat的“启动配置”,并在classpath选项卡中,将我的项目添加到“用户条目”组中。这导致springloaded工作正常

我有一个spring mvc项目。我使用eclipse编写代码,但不使用它来运行或测试应用程序。热部署与我的设置完美配合。我将给出设置此项的步骤

步骤#1 从下载弹簧加载的Jar

第2步 编辑maven批处理/shell文件并添加此行

export MAVEN_OPTS="-javaagent:/path/to/your/jar/springloaded-1.2.1.RELEASE.jar -noverify"
第三步 在eclipse中启用自动生成[菜单:项目->自动生成]

第四步 将pom配置为使用tomcat插件

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.0</version>
    <executions>
      <execution>
      <id>run-embedded</id>
      <goals>
        <goal>run</goal>
      </goals>
   <phase>pre-integration-test</phase>
   <configuration>
    <useSeparateTomcatClassLoader>true</useSeparateTomcatClassLoader>
    <contextFile>${basedir}/tomcat/context.xml</contextFile>
   </configuration>
  </execution>
 </executions>
</plugin>

org.apache.tomcat.maven
tomcat7 maven插件
2
嵌入式运行
跑
预集成测试
真的
${basedir}/tomcat/context.xml
第五步
使用mvn tomcat运行你的应用程序:如果你想集成你需要添加的Spring Loader,请运行

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
            <version>1.2.3.RELEASE</version>
        </dependency>
    </dependencies>
</plugin>

org.springframework.boot
springbootmaven插件
org.springframework
弹簧负载
1.2.3.1发布
转换为pom.xml

就这样。
干杯

我有一个spring mvc项目,tomcat7 maven。我使用eclipse编写代码。 我将我的项目配置如下:

步骤1:pom.xml

<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <!-- Config: contextPath and Port (Default: / : 8080) -->
    <configuration>
        <path>/</path>
        <port>8080</port>
    </configuration>
</plugin>

org.apache.tomcat.maven
:springloaded-1.2.5.RELEASE.jar

步骤3

右键单击您的项目→ 作为→ 运行配置…→ Maven Build→ 新的→

主选项卡:

  • 名称:您的配置的名称
  • 基本目录:${workspace\u loc:/YourProjectName}
  • 目标:tomcat7:run-X
选项卡参数: 在VM参数处:-javaagent:path/to/library/springload-1.2.5.RELEASE.jar-noverify

→ 跑步


现在您可以修改源代码并立即看到更改。只需在web浏览器中重新加载页面,而无需重建项目(Eclipse自动构建),并且必须重新启动web服务器。

@Ischin没有错误消息。TOMCAT启动时是干净的。请尝试将反斜杠(\)改为正斜杠(/)Vaibhav,您能使其正常工作吗?@IcedDante不幸不能。我在这上面花了很多时间。最后我得到了JRebel Social。spring-loaded似乎没有提供任何关于如何定义新编译类位置的文档,因此可以重新加载它们。关于发布和自动重新加载的更多详细信息,请访问(有点自我提升:)。感谢@Andrei和Pavel的详细回复。我已禁用“自动重新加载”并启用“自动发布”。我甚至试过在STS和TOMCAT上使用它。这里似乎什么都不管用。我在STS和Tomcat 7中使用了一个非常简单的Spring web应用程序,在@Controller注释类中更改了代码。当我更改@Controller代码时,作为某种情况发生的迹象,我在日志中看到了这一点:
INFO:org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping-将“{[/],methods=[GET],params=[],headers=[],consumes=[],products=[],custom=[])映射到公共java.lang.String.com.foo.bar.HomeController.home(java.util.Locale,org.springframework.ui.Model)上
@Vaibhav您是否已自动选中Build(菜单项目)?此功能是否仍然有效?因为我根本不能让它工作。见->
<plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <!-- Config: contextPath and Port (Default: / : 8080) -->
    <configuration>
        <path>/</path>
        <port>8080</port>
    </configuration>
</plugin>