
2007年3月4日
在websphere server上的jsp、servlet中调用EJB很简单了:
Context ctx = new InitialContext();
MessageSender msgSender = null;
MessageSenderHome home = (MessageSenderHome) javax.rmi.PortableRemoteObject
.narrow(ctx.lookup("MessageSender"),
MessageSenderHome.class);
msgSender = home.create();
msgSender.sendMessage();
如果要在服务器外部的普通java类的main方法中调用websphere上的EJB,需要注意几个问题:
1.需要将websphere安装目录下的lib中的jar包加入classpath
2.拷贝websphere安装目录下\WebSphere\AppServer\properties\下面的implfactory.properties文件加入classpath
3.需要将websphere部署完成后生成的jar包(包含自动生成的存根类等,不然会报不能载入存根的error)加入classpath,比如WebSphere\AppServer\installedApps\dennis\JMSTest.ear\JMSTest.jar包
4.使用webphere自带的ibm的JDK,也就是安装目录下WebSphere\AppServer\java即是,在eclipse中新建一个安装的jre即可,替代策略是将此jdk下的jre的jar包加进classpath也行
一个java类调用ejb的例子,调用SLSB:
package net.rubyeye.testjms;
import javax.naming.Context;
import javax.naming.InitialContext;
import net.rubyeye.testjms.interfaces.MessageSender;
import net.rubyeye.testjms.interfaces.MessageSenderHome;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
try {
// Hashtable h = new Hashtable();
// h.put(Context.INITIAL_CONTEXT_FACTORY,
// "com.ibm.websphere.naming.WsnInitialContextFactory");
// h.put(Context.PROVIDER_URL, "corbaloc::127.0.0.1:port");
Context ctx = new InitialContext();
MessageSender msgSender = null;
MessageSenderHome home = (MessageSenderHome) javax.rmi.PortableRemoteObject
.narrow(ctx.lookup("MessageSender"),
MessageSenderHome.class);
msgSender = home.create();
msgSender.sendMessage();
} catch (Throwable t) {
t.printStackTrace();
}
}
}
在同一台机器上使用上面的代码即可调用,远程调用去掉注释,并替换相应的IP和port
posted @
2007-03-04 11:57 dennis 阅读(1212) |
评论 (0) |
编辑 收藏
我们是没办法使用javamail通过一般的代理服务器发送邮件的,比如下面的代码是没有效果的:
Properties props = System.getProperties();
props.setProperty("proxySet","true");
props.setProperty("ProxyHost","192.168.155.1");
props.setProperty("ProxyPort","1080");
//或者这样,也是没用
//Properties props = System.getProperties();
//props.setProperty("proxySet","true");
//props.setProperty("http.proxyHost","192.168.155.1");
//props.setProperty("http.proxyPort","808");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
// props.put("mail.store.protocol", "pop3");
// props.put("mail.transport.protocol", "smtp");
final String username = "username"
final String password = "password"
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,
password);
}
});
MimeMessage message = new MimeMessage(session);








不过可以通过socks网关来访问外网的email服务器,当然,前提是你安装了一个socks服务器。完整的使用代理发送邮件代码如下:
package net.rubyeye.testjms;
import java.util.Date;
import java.util.Properties;
import java.security.Security;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class MailTest {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
// Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
// final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
//设置代理服务器
Properties props = System.getProperties();
props.setProperty("proxySet", "true");
props.setProperty("socksProxyHost", "192.168.155.1");
props.setProperty("socksProxyPort", "1081");
props.setProperty("mail.smtp.host", "smtp.126.com");
// props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
// props.setProperty("mail.smtp.socketFactory.fallback", "false");
// props.setProperty("mail.smtp.port", "465");
// props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
// props.put("mail.store.protocol", "pop3");
// props.put("mail.transport.protocol", "smtp");
final String username = "username";
final String password = "password";
//使用验证
Session session = Session.getDefaultInstance(props,
new Authenticator() {
protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
return new javax.mail.PasswordAuthentication(username,
password);
}
});
MimeMessage message = new MimeMessage(session);
Address address = new InternetAddress("killme6115@126.com");
Address toAaddress = new InternetAddress("killme6115@sina.com");
message.setFrom(address);
message.setRecipient(MimeMessage.RecipientType.TO, toAaddress);
message.setSubject("测试");
message.setText("test");
message.setSentDate(new Date());
Transport.send(message);
System.out.println("邮件发送!");
}
}
posted @
2007-03-04 11:50 dennis 阅读(701) |
评论 (0) |
编辑 收藏