我就很郁闷阿,刚刚开始的时候也没有出现这个问题,后来也没有对这块的代码做更改,怎么就报这种错误呢。现在的情况是:Tomcat启动正常,系统许多功能正常,但是点击部分功能的时候就会出现这个错误。请问大家有碰到过这种问题么?小弟在这里先谢谢各位咯、

解决方案 »

  1.   

    刚开始有点击这个部分吗?不能保证整个项目没有一丝变化吧?报错是找不到类,基本就是找不到含此类的jar包,可以调试定位的
      

  2.   

    这个项目是管理系统,你懂得,左边一列菜单。部分菜单下的功能可以,有几个报这个错误。关键几个jar包都是公司老一辈人写好打包好的。
      

  3.   

    jar包打包好没关系(不需要知道jar包中源码的),只要找到项目中使用jar包中类的入口点就行,希望找到欲使用却找不到的类的类名createNewModel开始往下
      

  4.   

    这问题一般是jar包问题,多或者少的事情。
      

  5.   

    刚刚细细查看下发现、。
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet execution threw an exception
    com.innet.base.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:72)
    root cause java.lang.UnsatisfiedLinkError: no Java2C in java.library.path
    java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
    java.lang.Runtime.loadLibrary0(Runtime.java:822)
    java.lang.System.loadLibrary(System.java:993)
    com.innet.application.model.ProductLineModel.<clinit>(ProductLineModel.java:33)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Class.java:164)
    com.icbc.marmot.core.model.ModelEngine.createNewModel(ModelEngine.java:32)
    com.icbc.marmot.core.controller.BaseAction.execute(BaseAction.java:87)
    org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    com.innet.base.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:72)第一次打开页面的时候报上面的错误,再刷新的时候就一直报帖子里面的那个截图错误了。
      

  6.   

    不都是一样的错误吗?只不过你现在列出的stack trace自forName0以下有更详细的了java.lang.UnsatisfiedLinkError: no Java2C in java.library.path看一下Java2C什么类,应该在哪个jar包的
      

  7.   

    我shit,找到原因了。原来 是个ProductLineModel类中定义了加载Java2C类库。
    static
    {
        System.loadLibrary("Java2C");
    }
    去掉就好了,可是我想问下,这个是去哪加载?一般项目没有做更改,为啥会有问题呢?
      

  8.   

    原来如果存在这段代码,很有可能仍是需要的,现在去掉的话,问题可能只是暂时不出现。library路径一般是由这个jvm变量指定的 java.library.path
    基本上就是启动时没加jvm参数:
    -Djava.library.path="xxx"详细:
    http://blog.csdn.net/forandever/article/details/5983846System.loadLibrary 参数为库文件名,不包含库文件的扩展名。
    例如你可以这样载入一个windows平台下JNI库文件
    System. loadLibrary ("TestJNI");这里,TestJNI.dll 必须是在java.library.path这一jvm变量所指向的路径中。
    可以通过如下方法来获得该变量的值:
    System.getProperty("java.library.path");
    默认情况下,在Windows平台下,该值包含如下位置:
    1)和jre相关的一些目录
    2)程序当前目录
    3)Windows目录
    4)系统目录(system32)
    5)系统环境变量path指定目录
      

  9.   

    嗯 。谢谢哥们 。
    最后找负责人,他说忘记给我几个dll文件了,我晕倒了、。
    加进去就好了,好像是公司人写的连接打印机,还有其它的什么东西的文件。最后,感谢大家的回复。祝大家生活愉快,事业顺心!