当前位置:首页 » 网页前端 » web项目热部署
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web项目热部署

发布时间: 2022-05-05 06:58:00

‘壹’ Python的web项目如何进行动态重载和热部署

真正意义上的代码热部署应该是类似erlang那样的,将代码更新到节点后不停服务,不断连接的自动应用新代码。auto reload什么的还是会造成业务瞬间中断。我感觉是可以从wsgi容器级别上实现,比如更新代码后检测到文件变更,然后通知容器创建新的wsgi application的实例,之后所有新的请求都发送到新的wdgi application实例上。等旧wsgi application实例的最后一个请求返回后就将其回收掉。不过貌似没有看到类似的实现

‘贰’ 关于web项目要重新部署并重启tomcat生效的问题

你这个“项目里面已经有客户上传的资源“这句话有点疑问,基本上资源都是放在磁盘上或数据库里面,重新部署一个新的版本应该保证数据能转换过来而不是删除它们让用户重新录入,那么我在想你这话话指的是当前用户在使用时 session 会话中有些数据还在内存里面,重启会丢失,如果是这样的话,基本上只有便宜的服务器会碰到这个问题,因为商用的服务器有一个功能叫”持久性会话“,在服务器重启时会把所有session的数据写入到数据库(有些服务器会用一个嵌入式的数据库比如derby或hsql来保存这个东西)或磁盘,重启成功后会把它们恢复到内存里。对于很多不适合重启的应用程序它们会想到使用 JSP而不是使用 Servlet。不过还是有很多网站本身是会停机的,只要事先发布公告并挑个使用者数量最少的深夜来做就行了。
从技术上讲,session 对于用户来说,他仅仅有一个 session ID 而已,其它所有东西都在服务器上,重启后用户刷新浏览器,那个 session id 对应的数据依然能拿到手。那么只要服务器上的东西放在session中的都写入到数据库(因为这样可以加密,防止他人偷看或复制),重启后恢复到内存中,所有东西都正常了。我们不应该假设所有在内存里面的东西都能恢复。

因此我们想到了很多 API 对于想放入 session 的东西都要求实现 java.io.Serializable 接口的原因也就在这里,另外对于需要支持集群功能的服务器也是这样的,因为 session 数据需要在多台服务器之间复制。

‘叁’ 怎么在linux下用tomcat部署java web项目

1。安装tomcat
2。将web项目打成war包
3。将war包放到tomcat指定目录
当然 每一步可能涉及好多细节,需要你read the fuck manual
当然我的回答可能你不采纳,但是我认为其他 人的回答完全是 垃圾

‘肆’ eclipse下web项目jsp不能热部署,我jrebel是启动了的。java文件也不能热部署

使用JRebel Eclipse插件之后,在项目中使用JRebel基本是零配置的–在项目中选择JRebel->Add JRebel Nature就可以了。JRebel的核心配置文件是rebel.xml,这在最新版的Eclipse插件里已经可以自动生成,无需配置。如果需要手工配置,可以选择Advanced Properties,Generate XML,然后会生成rebel.xml到src/main/resouces目录下。这里有两个配置项,其中classpath对应编译好的文件的位置,web对应源码的位置,一般不需要更改。

[html] view plain
<classpath>
<dir name="${rebel.workspace.path}/webapp/target/classes">
</dir>
</classpath>

<web>
<link target="/">
<dir name="${rebel.workspace.path}/webapp/src/main/webapp">
</dir>
</link>
</web>

‘伍’ 如何把Http Preview变成热部署

热部署是指在你修改项目BUG的时候对JSP或JAVA类进行了修改在不重启WEB服务器前提下能让修改生效。但是对配置文件的修改除外!

1、直接把项目web文件夹放在webapps里。

2、在tomcat\conf\server.xml中的<host></host>内部添加<context/>标签:

<Context debug="0" docBase="D:\demo1\web" path="/demo1" privileged="true" reloadable="true"/>

docBase:项目路径,可以使用绝对路径或相对路径,相对路径是相对于webapps
path:访问项目的路径,如:http://127.0.0.1:8080/demo1
reloadable:是否自动加载新增或改变的class文件.
debug属性与这个Engine关联的Logger记录的调试信息的详细程度。数字越大,输出越详细。如果没有指定,缺省为0。 也就是程序异常时写入日志文件里的详细程度。

3、第三种方式和第二种差不多,但是不是在Server.xml文件中添加Context标签,而是在
%tomcat_home%\conf\Catalina\localhost中添加一个XML文件,
如:demo1.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:\demo1\web" reloadable="true" />
,只是缺少了path属性,如果你硬写个path="demo2"的话,是没有用的,tomcat不明确的告诉你:“我不认得”,
这种方式服务器会使用xml文件的名字作为path属性的名字,SO访问地址为:http://localhost:8080/demo1

‘陆’ idea jrebel怎么热部署

1.建立好Web项目
2. 将src\main目录下的webapp复制到project目录下(和src同级),改名为WebRoot.
2.进行设置File - Project Structure
(1) 设置Project compiler output 路径
(2) 设置moles的代码编译输出目录. 点击moles 设置右侧 use mole compile output path
都是设置为project\WebRoot\WEB-INF\classes
点击Apply,
注意: Exclude Output Paths 这个勾选的话,WEB-INF目录下的classes目录在IDEA里面就会被隐藏起来.同时在旁边Sources选项卡中,可以通过Exclude Folders设置要在IDEA中隐藏的目录,比如WebRoot目录
(3) 指定Web.xml和WebRoot的路径. 点击web,分别指定
Web Mole deployment descriptor 路径为 project\WebRoot\WEB-INF\web.xml
和 Web Resource Directory的路径 为 project\WebRoot
点击Apply.

(4) 设置Artifacts 选中exploded 设置Output directory的路径

‘柒’ websphere 热部署是什么意思

在后台代码进行更改后,需要再部署到websphere服务器上,普通部署需要先关闭服务器、部署、在启动;热部署就直接部署上去,方便很多

‘捌’ java web热部署的实现 ClassLoader

要做到热部署的话,好像每个服务器都有专门的设置,比如JBoss默认就是热部署,Tomcat通过修改在server.xml中的配置可以做到热部署

‘玖’ java web服务器热部署问题

jboss
参考网络http://ke..com/view/309533.htm
作为开发平台来讲,jboss稳定,快速,免费(遵循LGPL),支持集群,良好的兼容性、扩展性,少量磁盘空间占用,目前比较成熟的ssh框架(JDK+JBoss+Struts2+Spring2+Hibernate3)即可在jboss平台上,依托myeclipse平台实现快速开发。
力荐。

‘拾’ 热部署的释义

所谓热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。
对于Java应用程序来说,热部署就是在运行时更新Java类文件。在基于Java的应用服务器实现热部署的过程中,类装入器扮演着重要的角色。大多数基于Java的应用服务器,包括EJB服务器和Servlet容器,都支持热部署。类装入器不能重新装入一个已经装入的类,但只要使用一个新的类装入器实例,就可以将类再次装入一个正在运行的应用程序。
Tomcat的热部署
Tomcat的热部署(以后就不用重启了)
没有热部署和有热部署的开发效率是天差地别的。这个问题还受很多第三方软件包(Struts,Spring,Hibernate)的限制。本来可以热部署,加入了第三方的包就不可以了。所以,先说明详细的软件环境,和程序配置是非常必要的。
虚拟机:java version 1.5.0_06
Servlet Engine:Apache Tomcat/5.0.27
Eclipse:3.0.1
Myeclipse:3.8.3
应用程序情况:纯正的servlet+jsp+javabean,数据库连接使用JDBC-ODBC桥连接Access数据库。没有使用任何第三方软件包,没有使用Struts,Spring,Hibernate。WebRootWEB-INFlib下是空的。
配置方法:
ie登陆http://Tomcat所在的服务器IP:8080/ -> 点超连接“Tomcat Administration”-> 输入用户名密码登陆 ->在左侧的功能树中 -> Tomcat Server -> Service(Catalina) -> Host(localhost) -> Context(/要修改的web项目) ->右侧新出现的页面中 ->Reloadable设置为true -> Save按钮 -> Commit Changes。
然后Tomcat日志显示:
debugging -- changes saved to conf/server.xml
- Removing web application at context path /test
- Processing Context configuration file URL file:D:Program FilesTomcat 5.0confCatalinalocalhost est.xml
- Removing web application at context path /admin
- unregistering logger Catalina:type=Logger,path=/admin,host=localhost
- Processing Context configuration file URL file:D:Program FilesTomcat 5.0confCatalinalocalhostadmin.xml
- Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
- Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
- Initializing, config='org.apache.webapp.admin.ApplicationResources', returnNull=true
- Removing web application at context path /webdav
- Processing Context configuration file URL file:D:Program FilesTomcat 5.0confCatalinalocalhostwebdav.xml
- Removing web application at context path /test
- Processing Context configuration file URL file:D:Program FilesTomcat 5.0confCatalinalocalhost est.xml
……
这样,设置就生效了。
开发时,修改.java文件后,调用这个类时日志提示:
- Reloading this Context has started
这是正在重新加载修改后的.class文件。
如果没有进行这个设置,修改.java文件后,不抛出异常。系统使用没有修改的.java文件继续运行。
不同版本的Tomcat的配置方法是不同的。这里使用的是5.0.27
j2ee开发插件(这里使用Myeclipse),也可能导致热部署失效。因为插件必须要把编译好的.class文件从工作空间复制到Tomcatwebapps下的项目里。才能使Tomcat得到需要热部署的文件。
注意:如果项目中加入了Struts,Hibernate,Spring之类的第三方软件,可能导致热部署失效。