在glassfish中部署使用Inbound JCA 1.5 (by quqi99)

来源:互联网 发布:java线程优先级大小 编辑:程序博客网 时间:2024/04/30 17:28

在glassfish中部署使用Inbound JCA 1.5 (by quqi99) 

 


作者:张华 发表于:2009-10-19
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明。
http://blog.csdn.net/quqi99

 

1 MDB

ejb-jar.xml文件为:

 

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
 <enterprise-beans>
    <message-driven>
      <description>An MDB that accepts mail messages</description>
      <ejb-name>MailRaMDB</ejb-name>
      <ejb-class>com.bes.exmaple.jca.MailRaMDB</ejb-class>
      <messaging-type>org.jboss.resource.adapter.mail.inflow.MailListener</messaging-type>
      <activation-config>
        <activation-config-property>
          <activation-config-property-name>mailServer</activation-config-property-name>
          <activation-config-property-value>aaaaaaaa</activation-config-property-value>
        </activation-config-property>
        <activation-config-property>
          <activation-config-property-name>mailFolder</activation-config-property-name>
          <activation-config-property-value>INBOX</activation-config-property-value>
        </activation-config-property>
        <activation-config-property>
          <activation-config-property-name>storeProtocol</activation-config-property-name>
          <activation-config-property-value>pop3</activation-config-property-value>
        </activation-config-property>
        <activation-config-property>
          <activation-config-property-name>userName</activation-config-property-name>
          <activation-config-property-value>your user</activation-config-property-value>
        </activation-config-property>
        <activation-config-property>
          <activation-config-property-name>password</activation-config-property-name>
          <activation-config-property-value>your password</activation-config-property-value>
        </activation-config-property>
      </activation-config>
    </message-driven>
  </enterprise-beans>
 </ejb-jar>

 

sun-ejb-jar.xml文件为:

 

<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd">
<sun-ejb-jar>
    <enterprise-beans>
        <ejb>
            <ejb-name>MailRaMDB</ejb-name>
            <mdb-resource-adapter>
                <resource-adapter-mid>mail-ra</resource-adapter-mid>
            </mdb-resource-adapter>
        </ejb>
    </enterprise-beans>
</sun-ejb-jar>

 

MDB源文件为:

package com.bes.exmaple.jca;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;

import javax.mail.Message;

import org.jboss.resource.adapter.mail.inflow.MailListener;
import javax.ejb.MessageDriven;

/**
 *
 *
 * @version 0.10 2009-10-19
 * @author Zhang Hua
 */
public @MessageDriven class MailRaMDB implements MailListener {

    public void onMessage(Message msg) {
        String str = "onMessage, msg=" + msg;
        System.out.println(str);
        String file = "c:/jca.txt";
        try {
            //read file
            StringBuffer sb = new StringBuffer();
            FileReader fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);
            String line = br.readLine();
            while (line != null) {
                sb.append(line + "<br/>");
                line = br.readLine();
            }
            br.close();
            fr.close();
           
            //write file
            FileWriter filewriter = new FileWriter(file, true);
            filewriter.write(sb.toString() + str + "<br/>");
            filewriter.close();
        } catch (Exception e) {
            e.printStackTrace();
            System.err.println(e.getMessage());
        }
    }

}

 

2 Resource adaptor

 

资源适配采用jboss的mail-ra.rar, 因为里面的ra.xml文件里有licence,我们用下面的ra.xml替换:

<?xml version="1.0" encoding="UTF-8"?>
<connector id="Connector_ID" version="1.5"
    xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd">
    <description>JavaMail Resource Adapter</description>
    <display-name>JavaMail Adapter</display-name>
    <vendor-name>my company</vendor-name>
    <eis-type>JavaMail Adapter</eis-type>
    <resourceadapter-version>5.0</resourceadapter-version>
    <resourceadapter>
        <resourceadapter-class>org.jboss.resource.adapter.mail.MailResourceAdapter</resourceadapter-class>
        <inbound-resourceadapter>
            <messageadapter>
                <messagelistener>
                    <messagelistener-type>org.jboss.resource.adapter.mail.inflow.MailListener</messagelistener-type>
                    <activationspec>
                        <activationspec-class>org.jboss.resource.adapter.mail.inflow.MailActivationSpec</activationspec-class>
                        <required-config-property>
                            <config-property-name>mailServer</config-property-name>
                        </required-config-property>
                        <required-config-property>
                            <config-property-name>mailFolder</config-property-name>
                        </required-config-property>
                        <required-config-property>
                            <config-property-name>storeProtocol</config-property-name>
                        </required-config-property>
                    </activationspec>
                </messagelistener>
            </messageadapter>
        </inbound-resourceadapter>
    </resourceadapter>
</connector>

 

同时,该适配器用了jboss自己log包,部署时应该把这些JAR包加上。 我的做法是,重新将源代码拿下来,将里面的jboss的log给去掉了。

原创粉丝点击