[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 メーリングリストの案内