2012-10-16 21 views
0

爲什麼我得到下面的異常..Jodconverter例外:無法啓動並連接在Windows

我堅持了這一問題幾天..

請幫助我..

INFO: ProcessManager implementation is WindowsProcessManager 

org.artofsolving.jodconverter.office.OfficeException: failed to start and connect 

       at org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.java:61) 

       at org.artofsolving.jodconverter.office.PooledOfficeManager.start(PooledOfficeManager.java:102) 

       at org.artofsolving.jodconverter.office.ProcessPoolOfficeManager.start(ProcessPoolOfficeManager.java:59) 

       at com.hiringsteps.ats.util.service.impl.UtilService.convertWord2Pdf(UtilService.java:132) 

       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:597) 

       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) 

       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) 

       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) 

       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) 

       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 

       at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) 

       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 

       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) 

       at $Proxy51.convertWord2Pdf(Unknown Source) 

       at com.hiringsteps.ats.applicant.facade.impl.ApplicantFacade.convert2PdfNHighlight(ApplicantFacade.java:553) 

       at com.hiringsteps.ats.applicant.facade.impl.ApplicantFacade.register(ApplicantFacade.java:433) 

       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:597) 

       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318) 

       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) 

       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) 

       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110) 

       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 

       at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90) 

       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) 

       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) 

       at $Proxy65.register(Unknown Source) 

       at com.hiringsteps.ats.applicant.dwr.impl.ApplicantDwr.register(ApplicantDwr.java:107) 

       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:597) 

       at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34) 

       at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:472) 

       at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:475) 

       at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:323) 

       at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52) 

       at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) 

       at org.directwebremoting.spring.DwrController.handleRequestInternal(DwrController.java:256) 

       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) 

       at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) 

       at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923) 

       at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852) 

       at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) 

       at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) 

       at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 

       at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 

       at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 

       at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) 

       at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 

       at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 

       at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) 

       at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 

       at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) 

       at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) 

       at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 

       at org.mortbay.jetty.Server.handle(Server.java:324) 

       at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 

       at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:842) 

       at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648) 

       at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 

       at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 

       at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 

       at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450) 

Caused by: java.util.concurrent.ExecutionException: org.artofsolving.jodconverter.office.OfficeException: could not establish connection 

       at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) 

       at java.util.concurrent.FutureTask.get(FutureTask.java:83) 

       at org.artofsolving.jodconverter.office.ManagedOfficeProcess.startAndWait(ManagedOfficeProcess.java:59) 

       ... 68 more 

我的代碼是

public void convertWord2Pdf(String inputPath, String outputPath) {  
     try {  
      File inputFile = new File(inputPath); 

      File outputFile = new File(outputPath); 

      OfficeManager officeManager = new DefaultOfficeManagerConfiguration().buildOfficeManager(); 

      officeManager.start(); // may tweak the start and stop code to appear elsewhere for additional efficiency 

      DocumentFormat docFormat = new DocumentFormat("Portable Document Format", "pdf", "application/pdf"); 

      Map map = new HashMap(); 

      map.put("FilterName", "writer_pdf_Export"); 

      PropertyValue[] aFilterData = new PropertyValue[1]; 

      aFilterData[0] = new PropertyValue(); 

      aFilterData[0].Name = "SelectPdfVersion"; 

      aFilterData[0].Value = 1; 

      map.put("FilterData", aFilterData); 

      docFormat.setStoreProperties(DocumentFamily.TEXT, map); 

      OfficeDocumentConverter docConverter = new OfficeDocumentConverter(officeManager); 

      docConverter.convert(inputFile, outputFile, docFormat); 

      officeManager.stop(); 

     } catch (Throwable e) {   

      e.printStackTrace();  
     } 
    } 

而且在我的pom.xml

<dependency> 

     <groupId>org.artofsolving.jodconverter</groupId> 

     <artifactId>jodconverter-core</artifactId> 

     <version>3.0-beta-3</version> 

</dependency> 

早些時候,我的代碼是

public void convertWord2Pdf(String inputPath, String outputPath) { 
     try { 
      File inputFile = new File(inputPath); 
      File outputFile = new File(outputPath);   

      OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100); 

      connection.connect();   

      DocumentConverter converter = new OpenOfficeDocumentConverter(connection); 

      converter.convert(inputFile, outputFile); 

      //close the connection 

      connection.disconnect(); 
     } 

     catch (Throwable e) { 
      e.printStackTrace(); 
     } 
    } 

而且在pom.xml中

<dependency> 

    <groupId>com.artofsolving</groupId> 

    <artifactId>jodconverter</artifactId> 

    <version>2.2.2</version>   

</dependency> 
+1

您正在使用什麼操作系統?你有開放式辦公室嗎?你有沒有安裝soffice庫?看來,jodconverter無法找到安裝,以連接?它真的在8100端口上運行嗎? – peshkira

+0

我沒有技術方面的知識..安裝了Open Office 3。贏7是我的操作系統。我沒有理解soffice和8100.我怎麼知道它是否在8100上運行? – 1355

回答

6

你的代碼看起來不錯,但它似乎是開放式辦公服務沒有運行,所以JODConverter不能連接到它,因此例外(org.artofsolving.jodconverter.office.OfficeException: failed to start and connect)。 如果正在運行,可能是端口錯誤。

你可以看看在使用你的港口,並試圖找出是否真的運行與否。

從這個來源:http://www.artofsolving.com/node/10

JODConverter需要連接到正在運行的OpenOffice.org實例,以執行文檔轉換。

這是從開始OpenOffice.org程序,你通常會做不同的。 OpenOffice.org可以配置爲作爲服務運行並偵聽TCP端口上的命令;有幾種方法可以做到這一點,但最簡單的就是在命令行中使用下列選項啓動:

你可以開始與服務:

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

如需幫助下窗戶看:

+0

我已經執行這個命令也「soffice-headless -accept =」套接字,主機= 127.0.0.1,端口= 8100; urp;「 – 1355

+0

我認爲現在它工作時,添加'-nofirststartwizard'這個太.. – 1355

+1

非常感謝您的幫助 :) – 1355

相關問題