日期:2014-05-17  浏览次数:20757 次

java web 读取串口数据的问题
我现在有个项目需要用到:从能扫描条形码的外设中读取数据,然后在jap页面中显示。。


单独写一个读取的程序,在myeclipse中用java application运行,是可以读取到数据的,
但是一旦放在servlet中,就会出现错误。。。
比方说下边两句话吧。。
 portId = CommPortIdentifier.getPortIdentifier("COM1");
 System.out.println(portId.getName());

把它放在main函数中当作java application运行 或者 用Junit做单元测试 时是能找到本机的COM1串口,再打印出串口的名字的,但是将这两句话放在servlet中就会出现错误
java.lang.NoClassDefFoundError: javax/comm/CommPortIdentifier
是这句话出错,为什么不能在servlet中运行呢???

想要在web 上显示读取来的数据 该怎么办? 找了一天了,网上搜出来的全是问题,没有解答的。。。。
我的那三个文件已经拷贝到相应的文件夹下了,所以把读取的那个类当作java application运行是可以的,但放在servlet中就不行了。。。。

或者给个别的思路??有什么别的办法可以读取串口数据的???

求解答!!谢谢
------解决方案--------------------
引用:
java.lang.NoClassDefFoundError

这个就是少包。
jar包要放到本项目的WEB-INF/lib目录下。
------解决方案--------------------
楼上说的对,没有定义,找不到java.lang.NoClassDefFoundError!包含下库函数就可以了
------解决方案--------------------
这么测试:

1. 在main函数调用时看看javax.comm.CommPortIdentifier.getPortIdentifie(CommPortIdentifier.java:105)这行执行时的每个参数
2. 在servlet执行时,同样看看 javax.comm.CommPortIdentifier.getPortIdentifie(CommPortIdentifier.java:105)这行执行时的每个参数。。

看看有什么不一样?排除细节的原因。。


------解决方案--------------------
http://www.blogjava.net/hgq0011/archive/2007/03/23/105726.html