JAVACHL的简单介绍
本篇文章给大家谈谈JAVACHL,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、JAVA NullPoint异常 问题 十分费解 求大神解答
- 2、java编译时发生错误
- 3、使用ibm MQ 在JAVA类中报: NoClassDefFoundError:com/ibm/mq/headers/internal/trace/Names
- 4、startchl通道后状态为notrunning
JAVA NullPoint异常 问题 十分费解 求大神解答
由楼主上述得:
因为没有执行if块代码,所以 node 对象 N 中成员变量 parent 不为空,parent 对象中又有个 ChlNo的变量,显然,parent对象中的ChlNo变量为空 所以才报空指针,如果楼主会的话,尝试着debug一下,看看传进方法的N变量下的parent对象下的ChlNo是否为空。
java编译时发生错误
1.class,不是classs,
2.for(i=1;i100;i++)注意是两个分号不是逗号
3.int i,sum; 中间是逗号,不是点
4.system.out.println("1+2+...+100"+sum);是双引,不是单引.
使用ibm MQ 在JAVA类中报: NoClassDefFoundError:com/ibm/mq/headers/internal/trace/Names
1.相关jar包:
com.ibm.mq.commonservices.jar
com.ibm.mq.headers.jar
com.ibm.mq.jar
com.ibm.mq.jmqi.jar
connector.jar
junit-4.4.jar
相关jar可以在ibm mq的安装目录下找到:
2.在mq服务器上创建相应的队列管理器,和队列,以及服务器传输通道。附上操作命令:
--启动队列管理器
strmqm QMEMBFE
--启动监听
runmqlsr -m QMEMBFE -p 1414 -t tcp
--用户交互管理界面程序
runmqsc QMEMBFE
--创建本地队列
DEFINE QLOCAL (Q1)
--创建名称为DC.SVRCONN的服务器连接通道
DEFINE CHANNEL(DC.SVRCONN) CHLTYPE (SVRCONN) REPLACE
--删除通道
DELETE CHANNEL(DC.SVRCONN)
3.使用java编写调用程序:
运行方法:单元测试运行:testMQ
MessageByMQ
[java] view plain copy
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
/**
* 列出常用的错误码:如下:
* 2540:通道定义有错误:/p
* 解决方式如下:/p
* 1.进入用户交互界面:runmqsc QMEMBFE(QMEMBFE为队列管理器名称)
* 2.创建相应的服务器连接通道:DEFINE CHANNEL(DC.SVRCONN) CHLTYPE (SVRCONN) REPLACE
* 2035:授权相关错误:解决方式如下:
* 进入用户交互界面:(同上):
* ALTER CHANNEL(DC.SVRCONN) CHLTYPE(SVRCONN) MCAUSER('mqm')
* 说明:DC.SVRCONN 服务器连接通道名称 mqm为ibm mq用户名称
*
*
*
*
* @author kefan
*
*/
public class MessageByMQ {
/**
* 队列管理器的名称
*/
private String qManagerName="QMEMBFE";
/**
* 队列管理器
*/
private MQQueueManager qMgr;
/**
* 队列名称
*/
private String queueName="Q1";
/**
* 队列
*/
private MQQueue qQueue;
/**
* mq服务器所在的主机名称
*/
private String hostname="192.168.233.134";
/**
* 服务器连接通道名称
*/
private String channelName="DC.SVRCONN";
/**
* 监听器监听的端口
*/
private int port=1414;
/**
* 传输的编码类型
*/
private int CCSID = 1381;
@Before
public void init(){
try {
MQEnvironment.hostname = this.hostname; // 安装MQ所在的ip address
MQEnvironment.port = this.port; // TCP/IP port
MQEnvironment.channel = this.channelName;
MQEnvironment.CCSID = CCSID;
qMgr = new MQQueueManager(this.qManagerName);
int qOptioin = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_INQUIRE
| MQC.MQOO_OUTPUT;
qQueue = qMgr.accessQueue(queueName, qOptioin);
} catch (MQException e) {
e.printStackTrace();
}
}
/**
* 发送信息
*/
public void SendMsg(byte[] qByte) {
try {
MQMessage qMsg = new MQMessage();
qMsg.write(qByte);
MQPutMessageOptions pmo = new MQPutMessageOptions();
qQueue.put(qMsg, pmo);
System.out.println("The message is sent!");
System.out.println("\tThe message is " + new String(qByte, "GBK"));
} catch (MQException e) {
e.printStackTrace();
System.out
.println("A WebSphere MQ error occurred : Completion code "
+ e.completionCode + " Reason Code is "
+ e.reasonCode);
} catch (java.io.IOException e) {
e.printStackTrace();
System.out
.println("An error occurred whilst to the message buffer "
+ e);
}
}
/**
* 从消息队列取数据
*/
public void GetMsg() {
try {
MQMessage retrievedMessage = new MQMessage();
MQGetMessageOptions gmo = new MQGetMessageOptions();
gmo.options += MQC.MQPMO_SYNCPOINT;
qQueue.get(retrievedMessage, gmo);
int length = retrievedMessage.getDataLength();
byte[] msg = new byte[length];
retrievedMessage.readFully(msg);
String sMsg = new String(msg,"GBK");
System.out.println(sMsg);
} catch (RuntimeException e) {
e.printStackTrace();
} catch (MQException e) {
e.printStackTrace();
if (e.reasonCode != 2033) // 没有消息
{
e.printStackTrace();
System.out
.println("A WebSphere MQ error occurred : Completion code "
+ e.completionCode
+ " Reason Code is "
+ e.reasonCode);
}
} catch (java.io.IOException e) {
System.out
.println("An error occurred whilst to the message buffer "
+ e);
}
}
/**
* 单元测试方法
*/
@Test
public void testMQ(){
MessageByMQ mqst = new MessageByMQ();
mqst.init();
try {
mqst.SendMsg("你好,Webshpere MQ 7.5!".getBytes("GBK"));
mqst.GetMsg();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 释放资源
*/
@After
public void release(){
try {
qQueue.close();
qMgr.disconnect();
} catch (MQException e) {
System.out
.println("A WebSphere MQ error occurred : Completion code "
+ e.completionCode + " Reason Code is "
+ e.reasonCode);
}
}
}
startchl通道后状态为notrunning
看倒数第三行JAVA_HOME=/usr/local/jdk1.8
这个jdk1.8要对应到你的local文件夹下
因为当时我弄的是JAVA_HOME=/usr/local/jdk
我的文件夹命名里没有jdk 只有jdk1.8
所以出现了not running
修改为JAVA_HOME=/usr/local/jdk1.8后出现
JMX enabled by default
Using config: /usr/local/zk/bin/../conf/zoo.cfg
Mode: standalone
这是我的情况,你们如果还是不行的话 再去看看其他经验贴
关于JAVACHL和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。