2016-05-10 3 views
0

Я новичок разработчик Java и я использую Spring MVC рамки Я хочу, чтобы экспортировать данные из Jsp страницы (который был отправлен из контроллера) Я работаю в соответствии с этим учебник http://www.codejava.net/frameworks/spring/spring-mvc-with-excel-view-example-apache-poi-and-jexcelapiЭкспорт данных в Exсel файл с помощью Spring MVC

но я получаю эту ошибку:

HTTP Status 500 - Request processing failed; nested exception isorg.springframework.beans.factory.BeanCreationException: Error creating beanwith name 'excelView': Instantiation of bean failed; nested exception isjava.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/Font

, когда я хочу использовать "первенствовать Lib" Пои-3.9.jar и поставить его в зависимость в pom.xml

Когда я сделать «Maven установить» я получил эту ошибку:

Failed to execute goal on project SpringMvcJdbcTemplate: Could not resolvedependencies for project net.codejava.spring:SpringMvcJdbcTemplate:war:1.0:Failed to collect dependencies at org.apache.poi:poi:jar:3.9: Failed to readartifact descriptor for org.apache.poi:poi:jar:3.9: Could not transfer artifact

org.apache.poi:poi:pom:3.9 from/to central 
(https://repo.maven.apache.org/maven2): 
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1] 

так я добавить библиотеку в обычном порядке, и его кажется хорошим, но когда я запустить приложение я получил ошибка я поставил в начале

Это мой код:

контроллер:

@RequestMapping(value = "/downloadExcel", method = RequestMethod.GET) 
public ModelAndView downloadExcel() { 
    // create some sample data 
    // return a view which will be resolved by an excel view resolver 
    return new ModelAndView("excelView", "listContactings", listContact); 
} 

MvcConfigiration:

@Bean 
    public ViewResolver getViewResolver(){ 
     ResourceBundleViewResolver resolver = new ResourceBundleViewResolver(); 
     resolver.setOrder(1); 
     resolver.setBasename("views"); 
     return resolver; 
    } 
    @Bean 
    public ViewResolver getViewResolver2(){ 
     InternalResourceViewResolver resolver = new InternalResourceViewResolver(); 
     resolver.setOrder(2); 
     resolver.setPrefix("/WEB-INF/views/"); 
     resolver.setSuffix(".jsp"); 
     return resolver; 
    } 

views.proprties:

excelView.(class)=net.codejava.spring.ExcelBuilder 

ExcelBuilder.java:

package net.codejava.spring; 

import java.util.Date; 
import java.util.List; 
import java.util.Map; 

import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.apache.poi.hssf.usermodel.HSSFFont; 
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.hssf.util.HSSFColor; 
import org.apache.poi.ss.usermodel.CellStyle; 
import org.apache.poi.ss.usermodel.Font; 
import org.springframework.web.servlet.view.document.AbstractExcelView; 

import net.codejava.spring.model.Contacting; 

public class ExcelBuilder extends AbstractExcelView { 

    @Override 
    protected void buildExcelDocument(Map<String, Object> model, 
      HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) 
      throws Exception { 
     // get data model which is passed by the Spring container 
     List<Contacting> listContactings = (List<Contacting>) model.get("listContactings"); 

     // create a new Excel sheet 
     HSSFSheet sheet = workbook.createSheet("Java Books"); 
     sheet.setDefaultColumnWidth(30); 

     // create style for header cells 
     CellStyle style = workbook.createCellStyle(); 
     Font font = workbook.createFont(); 
     font.setFontName("Arial"); 
     style.setFillForegroundColor(HSSFColor.BLUE.index); 
     style.setFillPattern(CellStyle.SOLID_FOREGROUND); 
     font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 
     font.setColor(HSSFColor.WHITE.index); 
     style.setFont(font); 

     // create header row 

     HSSFRow header = sheet.createRow(0); 

     header.createCell(0).setCellValue("contacting_id"); 
     header.getCell(0).setCellStyle(style); 

     header.createCell(1).setCellValue("user_id"); 
     header.getCell(1).setCellStyle(style); 

     header.createCell(2).setCellValue("subject"); 
     header.getCell(2).setCellStyle(style); 

     header.createCell(3).setCellValue("location"); 
     header.getCell(3).setCellStyle(style); 

     header.createCell(4).setCellValue("content"); 
     header.getCell(4).setCellStyle(style); 

     header.createCell(5).setCellValue("department"); 
     header.getCell(5).setCellStyle(style); 



     header.createCell(6).setCellValue("status"); 
     header.getCell(6).setCellStyle(style); 




     header.createCell(7).setCellValue("contacting_date"); 
     header.getCell(7).setCellStyle(style); 


     header.createCell(8).setCellValue("house_Number"); 
     header.getCell(8).setCellStyle(style); 

     header.createCell(9).setCellValue("Urgency"); 
     header.getCell(9).setCellStyle(style); 

     header.createCell(10).setCellValue("is_inspector"); 
     header.getCell(10).setCellStyle(style); 

     header.createCell(11).setCellValue("inspectorStatus"); 
     header.getCell(11).setCellStyle(style); 



     header.createCell(12).setCellValue("stringDate"); 
     header.getCell(12).setCellStyle(style); 

     header.createCell(13).setCellValue("openedBy"); 
     header.getCell(13).setCellStyle(style); 

     // create data rows 
     int rowCount = 1; 

     for (Contacting Contacting : listContactings) { 
      HSSFRow aRow = sheet.createRow(rowCount++); 
      aRow.createCell(0).setCellValue(Contacting.getContacting_id()); 
      aRow.createCell(1).setCellValue(Contacting.getUser_id()); 
      aRow.createCell(2).setCellValue(Contacting.getSubject()); 
      aRow.createCell(3).setCellValue(Contacting.getLocation()); 
      aRow.createCell(4).setCellValue(Contacting.getContent()); 
      aRow.createCell(5).setCellValue(Contacting.getdepartment()); 
      aRow.createCell(6).setCellValue(Contacting.getStatus()); 
      aRow.createCell(7).setCellValue(Contacting.getContacting_date()); 
      aRow.createCell(8).setCellValue(Contacting.getHouse_Number()); 
      aRow.createCell(9).setCellValue(Contacting.getUrgency()); 
      aRow.createCell(10).setCellValue(Contacting.getIs_inspector()); 
      aRow.createCell(11).setCellValue(Contacting.getInspectorStatus()); 
      aRow.createCell(12).setCellValue(Contacting.getStringDate()); 
      aRow.createCell(13).setCellValue(Contacting.getOpenedBy()); 



     } 
    } 
} 

Я думаю, что проблема в библиотеке с помощью, но я стараюсь много версии и многие способы ее использования, но я всегда получаю ошибки.

Кто-то может мне помочь?

ответ

0

пытаются использовать эту зависимость и выполнить

mvn clean install

<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>3.9</version> 
</dependency> 

И я настоятельно рекомендую, когда вы начинаете использовать Maven в зависимости распознаватель, продолжать использовать его и не смешивать библиотеки из собственных и мавена , потому что вы найдете проблемы в будущем.

Попробуйте выполнить с этой версией, и мы увидим исключение, может быть, нам нужно исключить некоторые баночку из зависимости пои, потому что уже включен

+0

Я стараюсь его сначала удалить библиотеку и чем вставить это, но я делать maven clean и после установки maven и получить ошибку снова – user5993555

+0

@ user5993555 где ошибка? в вашем исходном вопросе? – cralfaro

+0

Да в оригинальном вопросе – user5993555

Смежные вопросы