技术笔记2 jetty jboss
jetty热部署:
jetty启动加载文件webdefault.xml 。
文件里:
 <init-param>
      <param-name>useFileMappedBuffer</param-name>
      <!-- in linux, set to true -->
      <param-value>false</param-value>
    </init-param>
表示windows环境解除映射文件锁定
http://www.cnblogs.com/holbrook/archive/2012/12/30/2839842.html
http://blog.csdn.net/zlts000/article/details/43268885 onselect 联动
server.dostart
      |
      |
      |
org.eclipse.jetty.plus.annotation.ContainerInitializer.callstartup(org.eclipse.jetty.containerInitializers key , value : containerinitializer中的class由注释handlestypes规定的@HandlesTypes({WebApplicationInitializer.class}))
      |
      |
      |
org.springframework.web.SpringServletContainerInitializer.onstartup
HbMappingHolder
Server server = new Server(8080); ContextHandler context = new ContextHandler(); 
 context.setContextPath("/");   context.setResourceBase(".");    context.setClassLoader(Thread.currentThread().getContextClassLoader());    server.setHandler(context);    context.setHandler(new HelloHandler());   server.start();  
 server.join();
在windows系统上,jetty默认在运行时会锁定部署的文件。这对于需要在程序运行期间动态生成或改动某些文件就变得不能执行!对于这一点,Jetty的官网上专门有文章进行了解释:http://docs.codehaus.org/display/JETTY/Files+locked+on+Windows
如果突破这个限制,只需要改动一个jetty的配制文件即可,方法是:
在jetty的jar包中找到org/mortbay/jetty/webapp/webdefault.xml,搜索useFileMappedBuffer:
[xhtml] view plain copy
<init-param>  
  <param-name>useFileMappedBuffer</param-name>  
  <param-value>true</param-value> <!-- change to false -->  
</init-param>
jetty 锁定文件的问题
将param-value从true改为false即可。可以直接修改jar包内的这个文件,但是修改发行包毕竟不好,可以将此文件复制一份,在启动Jetty时用自己的这个webdefault.xml覆盖Jetty的设置即可。加上:
WebAppContext webapp = new WebAppContext();
webapp.setDefaultsDescriptor( "./webdefault.xml" );
org.springframework.context.ApplicationContextAware使用理解 http://blog.csdn.net/kaiwii/article/details/6872642
标签: springbean
2011-10-14 11:15 28427人阅读 评论(4) 收藏 举报
 分类:  J2EE(45)   spring(19)  
版权声明:本文为博主原创文章,未经博主允许不得转载。
一、这个接口有什么用?
当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以方便获得ApplicationContext中的所有bean。换句话说,就是这个类可以直接获取spring配置文件中,所有有引用到的bean对象。
二、怎么用?
举个例子吧:
例如我有一个方法类AppUtil,这个方法类中需要使用到的ApplicationContext中的某个bean(companyService)。
1、因为spring要建立属于自己的容器,就必须要加载自己的配置文件。
这个时候,需要注册ContextLoaderListener或者这个类的子类。
在web.xml加上以下的信息:
<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>
当然,这样子的话只会读取默认路径下的application.xml配置文件的。如果需要读取特定路径下的配置文件。需要在web.xml中
添加如下信息。可以参考我的示例,指定配置文件,如下:
<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:conf/app-context.xml</param-value>
 </context-param>
注意:<param-name>contextConfigLocation</param-name>是不能改变的。
2、方法类AppUtil的处理
方法类AppUtil实现ApplicationContextAware接口:
public class AppUtil
  implements ApplicationContextAware
为方法类AppUtil增加一个静态的成员ApplicationContext类型的对象。以后方法类AppUtil获取ApplicationContext,就是通过读取这个
成员变量的。具体如下所示:
private static ApplicationContext appContext;
实现ApplicationContextAware接口的默认方法:
public void setApplicationContext(ApplicationContext paramApplicationContext)
    throws BeansException
  {
    appContext = paramApplicationContext;
  }
3、在spring的配置文件中,注册方法类AppUtil
严格上来说,方法类AppUtil是一个bean,而且从步骤2中我们不难发现,之所以方法类AppUtil能够灵活自如地获取ApplicationContext
就是因为spring能够为我们自动地执行了setApplicationContext。但是,spring不会无缘无故地为某个类执行它的方法的,所以,就很有必要
通过注册方法类AppUtil的方式告知spring有这样子一个类的存在。
其实,方法很简单,就是将方法类AppUtil作为一个普通的bean在spring的配置文件中进行注册:
<bean id="appUtil" class="com.htsoft.core.util.AppUtil"/>
4、使用静态的成员ApplicationContext类型的对象,appContext,来调用其他bean。在方法类AppUtil中增加如下方法:
public static Object getBean(String paramString)
  {
    return appContext.getBean(paramString);
  }
那么,在
方法类AppUtil中就能够灵活地调用其他任何一个bean了,例如:
CompanyService localCompanyService = (CompanyService)getBean("companyService");
注:配置文件中关于companyService的内容:
<bean id="companyService" class="com.kaiwii.service.system.impl.CompanyServiceImpl">
        <constructor-arg index="0" ref="companyDao"/>      
</bean>
jboss 数据源配置讲解
http://www.docin.com/p-631260339.html
安装WebSphere MQ资源适配器:   
从安装目录复制wmq.jmsra.rar文件到服务器的部署目录中,例如:<安装路径>/server/default/deploy。此时资源适配器将会自动选择服务器。
安装WebSphere MQ扩展事务客户端:   
WebSphere MQ扩展事务客户端允许你使用XA分布式事务,并用客户端模式连接到WebSphere MQ队列管理器。要将客户端安装在JBoss,需要从安装目录复制com.ibm.mqetclient.jar文件到服务器的lib目录中,例如<安装路径>/server/default/lib。
为你的应用程序配置资源适配器:   
WebSphere MQ资源适配器允许你定义一些全局的属性。在JBoss中JCA出站流的资源定义在-ds.xml文件,名为wmq.jmsra-ds.xml。
此文件的概要如下:
<?xml version="1.0" encoding="UTF-8"?>
<connection-factories>
  <!-- mbeans defining JCA administered objects -->
  <mbean/>
  <!-- JCA Connection factory definitions -->
  <tx-connection-factory/>
</connection-factories>
从上可以看出JCA连接工厂的定义在<tx-connection-factory>元素,而且JMS队列和主题被定义在JCA的管理对象mbean里面。
二. local-tx-datasource
配置LocalTxConnectionManager 服务,该ConnectionManger只支持本地事务。 只支持一个数据源的事务,不支持分布事务。 即一个事务中不能访问两个数据源(不能有两个connection连接);
分区索引
http://blog.chinaunix.net/uid-23284114-id-3421922.html
分布式事务处理模型
http://blog.jobbole.com/95632/
顺丰的字母件就是一票多件,举个例子,你走广州发给北京一个人的快件,是10箱货,你要是一箱走一票的话运费就比较高了,你把那10箱放到一起算重量算运费比较省钱,算完后那10箱不可能绑在一起,取其中的任一包为母件,其他9箱为子件,就是说这10箱为同一个人发给另外同一个人的.
技术笔记2 jetty jboss的更多相关文章
- 技术笔记:Indy的TIdSMTP改造,解决发送Html和主题截断问题
		使用Indy来发邮件坑不少啊,只不过有比没有好吧,使用delphi6这种老工具没办法,只能使用了新一点的Indy版本9,公司限制... 1.邮件包含TIdText和TIdAttachment时会出现T ... 
- PHP实现日志处理类库 - 【微信开发之微电商网站】技术笔记之二
		继上篇文章[微信开发之微电商网站]技术笔记之一,昨日做了日志处理的功能. 对于现在的应用程序来说,日志的重要性是不言而喻的.很难想象没有任何日志记录功能的应用程序运行在生产环境中.日志所能提供的功能是 ... 
- IPV6技术笔记(剖析IPv4toIPv6)
		IPV6技术笔记 IPv6地址入门概念 什么是IPv6? IPv6,全称Internet Protocol version 6,即网际协议版本6,也叫互联网通信协议第六版.是互联网工程任务组(IETF ... 
- 解决一个 MySQL 服务器进程 CPU 占用 100%解决一个 MySQL 服务器进程 CPU 占用 100%的技术笔记》[转]
		转载地址:http://bbs.chinaunix.net/archiver/tid-1823500.html 解决一个 MySQL 服务器进程 CPU 占用 100%解决一个 MySQL 服务器进程 ... 
- 技术笔记5 MINA 和事务
		Java NIO框架MINA用netty性能和链接数.并发等压力测试参数好于mina. 特点:1.NIO弥补了原来的I/O的不足,它再标准java代码中提供了高速和面向块的I/O原力的I/O库与NIO ... 
- 开源爆款,阿里P7Android技术笔记,理论与实战齐飞,限时开放下载!
		自我介绍 2013年java转到Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在. 被人面试过,也面试过很多人.深知大多数初中级Android工程师,想要 ... 
- 技术笔记:Delphi多线程应用读写锁
		在多线程应用中锁是一个很简单又很复杂的技术,之所以要用到锁是因为在多进程/线程环境下,一段代码可能会被同时访问到,如果这段代码涉及到了共享资源(数据)就需要保证数据的正确性.也就是所谓的线程安全.之前 ... 
- Android硬盘缓存技术DiskLruCache技术笔记
		防止多图OOM的核心解决思路就是使用LruCache技术,但LruCache只是管理了内存中图片的存储与释放,如果图片从内存中被移除的话,那么又需要从网络上重新加载一次,这显然非常耗时.因此Googl ... 
- ebay的api的开发技术笔记
		使用eBay API基本步骤介绍 要开始使用eBay API,需要如下基本步骤: 1. 注册开发帐号: https://developer.ebay.com/join/Default.aspx ... 
随机推荐
- tarjan算法--求解无向图的割点和桥
			1.桥:是存在于无向图中的这样的一条边,如果去掉这一条边,那么整张无向图会分为两部分,这样的一条边称为桥 也就是说 无向连通图中,如果删除某边后,图变成不连通,则称该边为桥 2.割点:无向连通图中,如 ... 
- HDU2159_二维完全背包问题
			HDU2159_二维完全背包问题 输入有:经验,忍耐度,怪物种数,限制杀怪数 每一种怪物对应获得的经验值和消耗的耐久值 输出:剩下的最大忍耐度 限制:忍耐度,杀怪个数 在这里把忍耐度看成背包的容量,杀 ... 
- poj2481
			题意:给定一些线段(s, e),起点为s,终点为e,求每一段线段被多少线段包含(不包括相等) 思路:很明显的树状数组题目..但是做的时候想了挺久..(下面的x为线段起点, y为线段终点) 做法1:先对 ... 
- 1.mybatis入门
			一:创建表 CREATE TABLE `country` ( `id` ) NOT NULL AUTO_INCREMENT, `countryname` varchar() DEFAULT NULL, ... 
- caffe 教程
			Caffe是一个清晰而高效的深度学习框架,本文详细介绍了caffe的优势.架构,网络定义.各层定义,Caffe的安装与配置,解读了Caffe实现的图像分类模型AlexNet,并演示了CIFAR-10在 ... 
- [转载]DevOps建立全生命周期管理
			全生命周期管理(ALM)领域作为企业DevOps实践的总体支撑,应该说是DevOps领域中最为重要的实践领域,也是所有其他实践的基础设施.现在很多企业都非常重视CI/CD自动化工具的引入和推广,但是对 ... 
- 【BZOJ3709】 [PA2014]Bohater(贪心)
			传送门 BZOJ Solution 考虑如果可以回血肯定要打,那么就是按照伤害值从小到大排个序能打就打,不能打就\(NIE\). 接着看不能够回血的,emmm,把这个过程反着看一下就是打一个怪扣\(a ... 
- 网络流——最大流Dinic算法
			前言 突然发现到了新的一年什么东西好像就都不会了凉凉 算法步骤 建残量网络图 在残量网络图上跑增广路 重复1直到没有增广路(注意一个残量网络图要尽量把价值都用完,不然会浪费建图的时间) 代码实现 #i ... 
- 2019/4/23 todolist
			近期的任务单子大概是这样吧 bjoi2019改完,写题解 hnoi2019改一些,写题解 找3道网络流写写 写一场agc,写题解 找2道简单计算几何写写 
- Android------------------RecyclerView学习
			一.多种布局的保存 1.Type->getItemViewType(int position) 2.RecylerView.Holder : 定一个holder的内部类,里面保存一些 ... 
