`
sunxin1001
  • 浏览: 304345 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Tomcat下使用JMagick的问题!

阅读更多
mageMagick一个优秀的图像处理软件,JMagick是对ImageMagickJAVA面向对象化包装。我在TomCat下使用JMagick的时候报错信息:
java.lang.UnsatisfiedLinkError: no JMagick in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)
at java.lang.Runtime.loadLibrary0(Runtime.java:822)
at java.lang.System.loadLibrary(System.java:992)
at magick.Magick. <clinit>(Magick.java:38)
at com.util.ImageUtils.resize(ImageUtils.java:59)
at org.apache.jsp.eWebEditor.include.upload_jsp._jspService(org.apache.jsp.eWebEditor.include.upload_jsp:751)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)


我已安装IImageMagic WINDOWS的包,安装完结之后,把安装目录下所有的DLL都拷贝到system32下面了.
将jmagick.jar文件导入到lib中,将jmagick.dll文件也放到SYSTEM32目录下.
在调用JMagick的class里加了
System.setProperty("jmagick.systemclassloader","no");代码如下:

public static boolean resize(String picFrom, String picTo, int width, int height, boolean scale) throws MagickException {
System.setProperty("jmagick.systemclassloader","no");
        ImageInfo info = null; 
      try
      {     
      if(new File(picFrom).exists())
          {
          info = new ImageInfo(picFrom);
          }
          MagickImage image = new MagickImage(new ImageInfo(picFrom));
          MagickImage scaled;

          if (!scale) {
                  scaled = image.scaleImage(width, height);
          } else {
              Dimension dimension = image.getDimension();
              int iWi = (int) dimension.getWidth();
              int iHi = (int) dimension.getHeight();

              if(iWi <= width && width > 0) {
                  return false;
              }

        }
      ......
      ..............................

可是依然出现这个错误不知道为什么,请大虾指较.在线等,急....................

系统环境:XP,JDK1.5,Tomcat 5.5


我也遇到了您的问题 整了一夜,找到个解决方法但不知道是不是最好的。
就是把jmagick.dll 复制一份到tomcat/bin 目录中
我试了试 System.setProperty("jmagick.systemclassloader","no"); 这句代码都不用要就可以执行
希望对您有用
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics