[Seasar-user:21773] Re: Teeda POIとのエラー切り分け

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2013年 12月 14日 (土) 18:06:47 JST


小林 (koichik) です。

> POIはEclipse4.2でクラスパスも通っています。

Eclipseのビルド設定でクラスパスに通しただけで、
Tomcatからも見えるようになるとは限りません。
WEB-INF/libにPOIのJarを配置しているか、確認を
してみてください。


On Fri, 13 Dec 2013 16:22:26 +0000, <shigeaga @ gmail.com> wrote:

> 
> 大変申し訳ありません、件名を入れ忘れました。
> 
> 再度送信します。
> 
> 
> 阿形と申します。よろしくお願いいたします。
> 
> 
> 
> 
> 現在、Teeda1.0.13-sp11  POI 3.9 にてシステムの開発を行っております。
> 
> 問題についてですが、HSSFWorkbookが無い(office2003用)
> 
> Fontが無い(Office2007以降)
> 
> というエラーが発生しています。
> 
> 
> 
> 
> エラーはTeeda側なのかPOI側なのか切り分けと対策ができないで
> 
> います。POIはEclipse4.2でクラスパスも通っています。
> 
> import文にもエラーは出ていません。
> 
> 
> 
> 場違いな質問で申し訳ありません。ご教示の程よろしくお願いいたします。
> 
> 
> 
> 
> 開発環境
> Oracle11g      Windows8.1
> JDK 1.7
> Tomcat 6.0
> Eclipse 4.2
> 
> POI 3.9
> 
> Teeda 1.0.13-sp11 
> 
> 
> 
> 
> コード
> 
> import org.apache.poi.hssf.usermodel.HSSFCell;
> import org.apache.poi.hssf.usermodel.HSSFCellStyle;
> import org.apache.poi.hssf.usermodel.HSSFClientAnchor;
> import org.apache.poi.hssf.usermodel.HSSFDataFormat;
> import org.apache.poi.hssf.usermodel.HSSFFont;
> import org.apache.poi.hssf.usermodel.HSSFPatriarch;
> import org.apache.poi.hssf.usermodel.HSSFPicture;
> import org.apache.poi.hssf.usermodel.HSSFRow;
> import org.apache.poi.hssf.usermodel.HSSFSheet;
> import org.apache.poi.hssf.usermodel.HSSFWorkbook;
> import org.apache.poi.ss.usermodel.IndexedColors;
> 
> 
> 
> 
> 
> import org.seasar.framework.container.annotation.tiger.Component;
> import org.seasar.framework.container.annotation.tiger.InstanceType;
> 
> 
> 
> 
> import equipment.system.web.emtbl.AbstractEmtblPage;
> 
> 
> 
> 
> @Component(instance = InstanceType.SINGLETON)
> public class  CreateDateMarkService extends AbstractEmtblPage{ 
> 
> 
> 
> 
> 
> public void getReportHozen(){
>   
>   final String EXCEL_FOLDER = "C:\\Users\\";
>   final String EXCEL_FILE = "設備保全報告書(FH-1-111改01).xls";
>   final String EXCEL_SHEET = "原紙"; 
>   
>   HSSFWorkbook wb = null;
>   
>   try {
>    wb = new HSSFWorkbook(new FileInputStream(EXCEL_FOLDER + EXCEL_FILE));
>   } catch (FileNotFoundException e1 ){
>    e1.printStackTrace();
>   } catch (IOException e1) {
>    e1.printStackTrace();
>   }
> 
>  HSSFWorkbook(new FileInputStream(EXCEL_FOLDER + EXCEL_FILE));でエラー発生
> 
> 
> 
> 
> ログ
> 
> 2013-12-14 00:35:53,595 [http-8080-1] DEBUG org.seasar.framework.aop.interceptors.TraceInterceptor - BEGIN equipment.system.service.CreateDateMarkService#getReportHozen()
> 2013-12-14 00:35:53,595 [http-8080-1] DEBUG org.seasar.extension.jta.TransactionImpl - トランザクションを開始しました。tx=[FormatId=4360, GlobalId=1386945555842/255, BranchId=]
> 2013-12-14 00:36:11,375 [http-8080-1] DEBUG org.seasar.extension.jta.TransactionImpl - トランザクションをロールバックしました。tx=[FormatId=4360, GlobalId=1386945555842/255, BranchId=]
> 2013-12-14 00:36:11,392 [http-8080-1] DEBUG org.seasar.framework.aop.interceptors.TraceInterceptor - END equipment.system.service.CreateDateMarkService#getReportHozen() Throwable:java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook
> 2013-12-14 00:36:11,392 [http-8080-1] DEBUG org.seasar.framework.aop.interceptors.TraceInterceptor - END equipment.system.web.emtbl.EmtblStampPage#doOnceCreateDatemark() Throwable:java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook
> 2013-12-14 00:36:11,392 [http-8080-1] DEBUG org.seasar.teeda.extension.util.TeedaExtensionErrorPageManagerImpl - org/apache/poi/hssf/usermodel/HSSFWorkbook
> java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook
>  at equipment.system.service.CreateDateMarkService.getReportHozen(CreateDateMarkService.java:153)
>  at equipment.system.service.CreateDateMarkService$$EnhancedByS2AOP$$4baf02a1.$$getReportHozen$$invokeSuperMethod$$(CreateDateMarkService$$EnhancedByS2AOP$$4baf02a1.java)
>  at equipment.system.service.CreateDateMarkService$$EnhancedByS2AOP$$4baf02a1$$MethodInvocation$$getReportHozen1.proceed(MethodInvocationClassGenerator.java)
>  at org.seasar.extension.tx.DefaultTransactionCallback.execute(DefaultTransactionCallback.java:58)
>  at org.seasar.extension.tx.adapter.JTATransactionManagerAdapter.required(JTATransactionManagerAdapter.java:65)
>  at org.seasar.extension.tx.RequiredInterceptor.invoke(RequiredInterceptor.java:50)
>  at equipment.system.service.CreateDateMarkService$$EnhancedByS2AOP$$4baf02a1$$MethodInvocation$$getReportHozen1.proceed(MethodInvocationClassGenerator.java)
>  at org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceInterceptor.java:73)
>  at equipment.system.service.CreateDateMarkService$$EnhancedByS2AOP$$4baf02a1$$MethodInvocation$$getReportHozen1.proceed(MethodInvocationClassGenerator.java)
>  at equipment.system.service.CreateDateMarkService$$EnhancedByS2AOP$$4baf02a1.getReportHozen(CreateDateMarkService$$EnhancedByS2AOP$$4baf02a1.java)
>  at equipment.system.web.emtbl.EmtblStampPage.doOnceCreateDatemark(EmtblStampPage.java:50)
>  at equipment.system.web.emtbl.EmtblStampPage$$EnhancedByS2AOP$$669579a4.$$doOnceCreateDatemark$$invokeSuperMethod$$(EmtblStampPage$$EnhancedByS2AOP$$669579a4.java)
>  at equipment.system.web.emtbl.EmtblStampPage$$EnhancedByS2AOP$$669579a4$$MethodInvocation$$doOnceCreateDatemark1.proceed(MethodInvocationClassGenerator.java)
>  at org.seasar.framework.aop.interceptors.ThrowsInterceptor.invoke(ThrowsInterceptor.java:79)
>  at equipment.system.web.emtbl.EmtblStampPage$$EnhancedByS2AOP$$669579a4$$MethodInvocation$$doOnceCreateDatemark1.proceed(MethodInvocationClassGenerator.java)
>  at org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceInterceptor.java:73)
>  at equipment.system.web.emtbl.EmtblStampPage$$EnhancedByS2AOP$$669579a4$$MethodInvocation$$doOnceCreateDatemark1.proceed(MethodInvocationClassGenerator.java)
>  at equipment.system.web.emtbl.EmtblStampPage$$EnhancedByS2AOP$$669579a4.doOnceCreateDatemark(EmtblStampPage$$EnhancedByS2AOP$$669579a4.java)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.lang.reflect.Method.invoke(Method.java:601)
>  at org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:96)
>  at org.seasar.framework.beans.impl.BeanDescImpl.invoke(BeanDescImpl.java:218)
>  at org.seasar.teeda.extension.html.impl.HtmlComponentInvokerImpl.invoke(HtmlComponentInvokerImpl.java:163)
>  at org.seasar.teeda.extension.html.impl.HtmlActionListener.processAction(HtmlActionListener.java:71)
>  at javax.faces.component.UICommand.broadcast(UICommand.java:149)
>  at org.seasar.teeda.extension.component.html.THtmlCommandButton.broadcast(THtmlCommandButton.java:78)
>  at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:192)
>  at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:117)
>  at org.seasar.teeda.core.lifecycle.impl.InvokeApplicationPhase.executePhase(InvokeApplicationPhase.java:29)
>  at org.seasar.teeda.core.lifecycle.AbstractPhase.execute(AbstractPhase.java:57)
>  at org.seasar.teeda.core.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:97)
>  at javax.faces.webapp.FacesServlet.service(FacesServlet.java:100)
>  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
>  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  at org.seasar.framework.container.hotdeploy.HotdeployFilter.doHotdeployFilter(HotdeployFilter.java:99)
>  at org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:67)
>  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  at org.seasar.teeda.extension.filter.MultipartFormDataFilter.doFilter(MultipartFormDataFilter.java:83)
>  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  at org.seasar.extension.filter.EncodingFilter.doFilter(EncodingFilter.java:69)
>  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>  at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>  at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>  at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>  at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>  at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>  at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
>  at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
>  at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
>  at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>  at java.lang.Thread.run(Thread.java:722)
> Caused by: java.lang.ClassNotFoundException: org.apache.poi.hssf.usermodel.HSSFWorkbook
>  at java.lang.ClassLoader.findClass(ClassLoader.java:522)
>  at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
>  at org.seasar.framework.container.hotdeploy.HotdeployClassLoader.loadClass(HotdeployClassLoader.java:76)
>  at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Windows メール から送信


-- 
{
  name: "Koichi Kobayashi",
  mail: "koichik @ improvement.jp",
  blog: "http://d.hatena.ne.jp/koichik/",
  twitter: "@koichik"
}



Seasar-user メーリングリストの案内