Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема JSP+Xalan+Bean  (Прочитано 5120 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ElDiablo
Гость
« : 20-03-2004 21:07 » 

Нужно используя Xerces обьеденить xml с xsl, а на выходе получить html.
В JPS используеться bean, в котором я создаю экземпляр класса Kernel, затем вызываю метод getHTML() который должен вернуть HTML-код.

Работаю под JBuilder 7
Tomcat-4.0.3

Подключаю к проекту нужные либы:
тоесть
xalan.jar
xml-apis.jar
xercesImpl.jar

Вот во время запуска проекта, вылетают два эксепшина:

javax.servlet.ServletException: javax/xml/transform/TransformerFactoryConfigurationError
и
java.lang.NoClassDefFoundError: javax/xml/transform/TransformerFactoryConfigurationError

Жаль

Тестировал семпл из ксалановского пакета SempleTranform, сделан в виде приложения.
Используються такие-же куски кода (то-есть я его от-туда выдрал вставил в свой проект и чуть-чуть переделал Улыбаюсь

вот они:
Код:
...
...
        StringWriter writer = new StringWriter();
        try {
  TransformerFactory tFactory = TransformerFactory.newInstance();
          Transformer transformer = tFactory.newTransformer(new StreamSource(  new StringReader(xsl) ));
          transformer.transform(new StreamSource( new StringReader(out) ), new StreamResult( writer ));
        }
        catch (TransformerException ex) {
        }
catch (TransformerFactoryConfigurationError ex) {
        }

Sysstem.out(writer.toString());
...
...

 ). Все работает!!!

Вот уже 3 день не могу понять в чем мой глюк, ПОМОГИТЕ КТО МОЖЕТ пожалуйста!


Код класса Kernel:
Код:
package forum.engine;
import forum.database.DBConnector;
import java.util.ArrayList;
import java.util.Iterator;
import forum.database.Category;
import forum.database.Forum;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.ErrorListener;
import java.util.Properties;

public class Kernel {
  private DBConnector connector = null;
  public Kernel() {
    connector = new DBConnector();
  }
  public synchronized String getHTML(){
    String out = "........";  //Здесь XML контент
    String xsl = "........";  //Здесь XSL контент

    StringWriter writer = new StringWriter();
    try {
TransformerFactory tFactory = TransformerFactory.newInstance();
        Transformer transformer = tFactory.newTransformer(new StreamSource(  new StringReader(xsl) ));
        transformer.transform(new StreamSource( new StringReader(out) ), new StreamResult( writer ));
    }
    catch (TransformerException ex) {
    }
    catch (TransformerFactoryConfigurationError ex) {
    }
    return writer.toString();
  }
}

Код бина:

Код:
package forum.beans;

import forum.database.DBConnector;
import forum.database.User;
import java.util.ArrayList;
import forum.database.Category;
import forum.database.Forum;
import forum.database.Theme;
import forum.database.Message;
import forum.engine.Kernel;
import org.apache.xalan.xslt.EnvironmentCheck;
import java.io.PrintWriter;
import java.io.StringWriter;

public class indexBean {
  private String text = "";
  Kernel kernel = new Kernel();

  public void setText(String text){
    this.text = text;
  }
  public String getText(){
    return kernel.getHTML();
  }
}

Код JSP:

Код:
<%@ page contentType="text/html; charset=windows-1251" %>
<html>
<jsp:useBean id="indexBeanId" scope="session" class="forum.beans.indexBean" />
<jsp:setProperty name="indexBeanId" property="*" />
<body>
<jsp:getProperty name="indexBeanId" property="text" />
</body>
</html>
« Последнее редактирование: 25-11-2007 13:57 от Алексей1153++ » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines