技术笔记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箱为同一个人发给另外同一个人的.

原文地址:https://www.cnblogs.com/heyanan/p/7170944.html