下面这个是写在main里面的一个测试类:
包jbossall-client.jar已经包含进去了
import javax.jms.*
public class SendMQ {
public static void main (String[] args){
QueueConnection conn = null;
QueueSession session = null;
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url","jnp://localhost:1099");
props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
InitialContext ctx = new InitialContext(props);
QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup("UIL2ConnectionFactory");
conn = factory.createQueueConnection();
session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
Destination destination = (Queue)ctx.lookup("queue/A");
MessageProducer producer = session.createProducer(destination);
TextMessage msg = session.createTextMessage("这是我发送的第五个消息测试,测试jnp");
msg.setStringProperty("sessionID","jnp");
msg.setStringProperty("actionName","testAction");
producer.send(msg);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
没有任何的问题,我还用hers监测到了消息,接受也没出问题。
可是我一把这个程序放到web中就出现问题:
public class UserLoginAction extends DispatchAction {
/**
* 处理邓录
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward login(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception
{
// TODO Auto-generated method stub
UserForm userform = (UserForm)form;
String username = userform.getUsername();
String password = userform.getPassword();
/** 对username,password进行数据处理 */
/** javaBean进行处理,查询数据库等,在此只进行打印显示在控制台上 */
System.out.println("用户名:"+username+"\n密码:"+password);
QueueConnection conn = null;
QueueSession session = null;
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url","jnp://localhost:1099");
props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
InitialContext ctx = new InitialContext(props);
QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup("UIL2ConnectionFactory");
conn = factory.createQueueConnection();
session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
Destination destination = (Queue)ctx.lookup("queue/A");
MessageProducer producer = session.createProducer(destination);
TextMessage msg = session.createTextMessage("这是我发送的第三个消息测试,测试jnp");
msg.setStringProperty("sessionID","jnp");
msg.setStringProperty("actionName","testAction");
producer.send(msg);
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
session.close();
conn.close();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//成功跳转到成功信息页面
return mapping.findForward("success");
}
}
用一个页面一进行测试就出现下面的异常:
包jbossall-client.jar也已经放到web-inf下面的lib中
用户名:gs
密码:sgsgs
javax.naming.CommunicationException [Root exception is java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.net.MalformedURLException: no protocol: 5.0/webapps/StrutsDemo/WEB-INF/classes/]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:722)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.demo.cht.action.UserLoginAction.login(UserLoginAction.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
不知道是不是我的配置有问题,请大家不吝赐教,小弟才刚学两天
包jbossall-client.jar已经包含进去了
import javax.jms.*
public class SendMQ {
public static void main (String[] args){
QueueConnection conn = null;
QueueSession session = null;
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url","jnp://localhost:1099");
props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
InitialContext ctx = new InitialContext(props);
QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup("UIL2ConnectionFactory");
conn = factory.createQueueConnection();
session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
Destination destination = (Queue)ctx.lookup("queue/A");
MessageProducer producer = session.createProducer(destination);
TextMessage msg = session.createTextMessage("这是我发送的第五个消息测试,测试jnp");
msg.setStringProperty("sessionID","jnp");
msg.setStringProperty("actionName","testAction");
producer.send(msg);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
没有任何的问题,我还用hers监测到了消息,接受也没出问题。
可是我一把这个程序放到web中就出现问题:
public class UserLoginAction extends DispatchAction {
/**
* 处理邓录
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward login(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception
{
// TODO Auto-generated method stub
UserForm userform = (UserForm)form;
String username = userform.getUsername();
String password = userform.getPassword();
/** 对username,password进行数据处理 */
/** javaBean进行处理,查询数据库等,在此只进行打印显示在控制台上 */
System.out.println("用户名:"+username+"\n密码:"+password);
QueueConnection conn = null;
QueueSession session = null;
try {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url","jnp://localhost:1099");
props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
InitialContext ctx = new InitialContext(props);
QueueConnectionFactory factory = (QueueConnectionFactory)ctx.lookup("UIL2ConnectionFactory");
conn = factory.createQueueConnection();
session = conn.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
Destination destination = (Queue)ctx.lookup("queue/A");
MessageProducer producer = session.createProducer(destination);
TextMessage msg = session.createTextMessage("这是我发送的第三个消息测试,测试jnp");
msg.setStringProperty("sessionID","jnp");
msg.setStringProperty("actionName","testAction");
producer.send(msg);
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
try {
session.close();
conn.close();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//成功跳转到成功信息页面
return mapping.findForward("success");
}
}
用一个页面一进行测试就出现下面的异常:
包jbossall-client.jar也已经放到web-inf下面的lib中
用户名:gs
密码:sgsgs
javax.naming.CommunicationException [Root exception is java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.net.MalformedURLException: no protocol: 5.0/webapps/StrutsDemo/WEB-INF/classes/]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:722)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at com.demo.cht.action.UserLoginAction.login(UserLoginAction.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
不知道是不是我的配置有问题,请大家不吝赐教,小弟才刚学两天
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货