Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Веб-сервис и hibernate / 12 сообщений из 12, страница 1 из 1
17.12.2012, 23:10:19
    #38082682
Evgeniy_Aleksandrovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
Есть веб-сервис, он же обычный веб-проект на платформе hibernate под мою базу-MySQL.
Проблема: нет связи между моим проектом и базой данных. Т.е. на клиент приходит пустой список. Что у меня не так?

1. Есть пакет, где собраны классы-сущности
Код: java
1.
2.
3.
4.
@Entity
@Table(name = "article")
public class Article {
....



2. прописал их в hubernate.cfg.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/new_db2</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
     
        <mapping class="net.sharahov.model.Article"/>
        <mapping class="net.sharahov.model.Department"/>
        <mapping class="net.sharahov.model.Personne"/>
        <mapping class="net.sharahov.model.Customs"/>
        
    </session-factory>
</hibernate-configuration>



3. Медод для получения списка
Код: java
1.
2.
3.
4.
5.
6.
 @Autowired
    private SessionFactory sessionFactory;
...
  public List<Article> listArticles() {
        return (List<Article>) sessionFactory.getCurrentSession().createCriteria(Article.class).list();
    }



4. ну и веб-метод.
@WebMethod
public List<Article> listArticles() {
return articleDao.listArticles();
}
...
Рейтинг: 0 / 0
17.12.2012, 23:13:25
    #38082685
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
Что показывает пошаговая отладка? Что в лог файле?
...
Рейтинг: 0 / 0
17.12.2012, 23:17:59
    #38082695
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
обычно или 1) где-то еще лежит файл persistence
2) неправильное имя базы, порт и тп.
...
Рейтинг: 0 / 0
18.12.2012, 00:02:07
    #38082744
Evgeniy_Aleksandrovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
SEVERE: java.lang.NullPointerException
at net.sharahov.service.ArticleServiceImpl.listArticles(ArticleServiceImpl.java:38)

Т.е. вот здесь легло:
Код: java
1.
2.
3.
4.
 @WebMethod
    public List<Article> listArticles() {
     return articleDao.listArticles();  //38 строка
    }



Значит тут не получаем список
Код: java
1.
2.
3.
 public List<Article> listArticles() {
        return (List<Article>) sessionFactory.getCurrentSession().createCriteria(Article.class).list();
    }



Пароль, порт правильно.. еще при создании проверил подключение
...
Рейтинг: 0 / 0
18.12.2012, 02:06:03
    #38082830
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
жесть. срочно осваивайте дебаггер у вас артиклдао нулл
...
Рейтинг: 0 / 0
18.12.2012, 15:12:50
    #38083622
Evgeniy_Aleksandrovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
Возникает такая ошибка на клиентской стороне:
com.sun.xml.ws.protocol.soap.MessageCreationException: Couldn't create SOAP message due to exception: XML reader error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,111]
Message: XML document structures must start and end within the same entity.


1. WebMethod на сервисе
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 @WebMethod
    public List<Article> listArticles() {
         Session sess = HibernateUtil.getSessionFactory().getCurrentSession();
     sess.getTransaction().begin();
            Query query = sess.createQuery("from Article");   
            List<Article> listArt = query.list();
     sess.getTransaction().commit();
        
    System.out.println(listArt.get(0).getArticleDesc());
     return listArt;
    }



2. на клиенте:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
@GET
    @Produces("application/xml")
    @Path("listArticles/")
    public List<net.sh.service.Article> getListArticles() {
        try {
            net.sh.service.ArticleServiceImplService service1 = new net.sh.service.ArticleServiceImplService();
            net.sh.service.ArticleServiceImpl port1 = service1.getArticleServiceImplPort();
            java.util.List<net.sharahov.service.Article> result = port1.listArticles();
            return result;
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }
...
Рейтинг: 0 / 0
18.12.2012, 15:30:57
    #38083662
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
Сервер выдал HTML для 500й ошибки? Вот клиент и не смог распарсить.
...
Рейтинг: 0 / 0
18.12.2012, 16:05:17
    #38083740
Evgeniy_Aleksandrovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
авторСервер выдал HTML для 500й ошибки?
Не выдавал.

com.sun.xml.ws.protocol.soap.MessageCreationException: Couldn't create SOAP message due to exception: XML reader error: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,111]
Message: XML document structures must start and end within the same entity.
at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:292)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:189)
at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:93)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:598)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:557)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:542)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:439)
at com.sun.xml.ws.client.Stub.process(Stub.java:222)
at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:135)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:109)
at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
at $Proxy401.listArticles(Unknown Source)
at net.roseindia.controller.ArticleController.getListArticles(ArticleController.java:151)
at net.roseindia.controller.ArticleController.listArticles(ArticleController.java:71)
...
Рейтинг: 0 / 0
18.12.2012, 16:19:30
    #38083773
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
Evgeniy_AleksandrovichНе выдавал.

Это клиентский код. Что вернул серверный?
Вот так можно весь HTTP дампмить
com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true
там есть ещё подобная настройка для серверной стороны.
...
Рейтинг: 0 / 0
18.12.2012, 16:35:37
    #38083811
Evgeniy_Aleksandrovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
SEVERE: log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
SEVERE: log4j:WARN Please initialize the log4j system properly.
WARNING: StandardWrapperValve[ArticleServiceImpl]: PWC1406: Servlet.service() for servlet ArticleServiceImpl threw exception
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: net.sharahov.model.Article.customses, no session or session was closed
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:350)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:343)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:163)
at com.sun.xml.bind.v2.runtime.reflect.Lister$CollectionLister.iterator(Lister.java:282)
at com.sun.xml.bind.v2.runtime.reflect.Lister$CollectionLister.iterator(Lister.java:269)
at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:133)
at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:159)
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:358)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696)
at com.sun.xml.bind.v2.runtime.property.ArrayElementNodeProperty.serializeItem(ArrayElementNodeProperty.java:69)
at com.sun.xml.bind.v2.runtime.property.ArrayElementProperty.serializeListBody(ArrayElementProperty.java:172)
at com.sun.xml.bind.v2.runtime.property.ArrayERProperty.serializeBody(ArrayERProperty.java:159)
at com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.serializeBody(ClassBeanInfoImpl.java:358)
at com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:696)
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:271)
at com.sun.xml.bind.v2.runtime.BridgeImpl.marshal(BridgeImpl.java:104)
at com.sun.xml.bind.api.Bridge.marshal(Bridge.java:145)
at com.sun.xml.ws.db.glassfish.BridgeWrapper.marshal(BridgeWrapper.java:170)
at com.sun.xml.ws.message.jaxb.JAXBMessage.writePayloadTo(JAXBMessage.java:393)
at com.sun.xml.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImpl.java:149)
at com.sun.xml.ws.encoding.StreamSOAPCodec.encode(StreamSOAPCodec.java:127)
at com.sun.xml.ws.encoding.SOAPBindingCodec.encode(SOAPBindingCodec.java:285)
at com.sun.xml.ws.transport.http.HttpAdapter.encodePacket(HttpAdapter.java:421)
at com.sun.xml.ws.transport.http.HttpAdapter.access$100(HttpAdapter.java:99)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:650)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:263)
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:163)
at org.glassfish.webservices.JAXWSServlet.doPost(JAXWSServlet.java:145)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:688)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1550)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
...
Рейтинг: 0 / 0
18.12.2012, 16:38:19
    #38083819
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
Evgeniy_Aleksandrovichorg.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: net.sharahov.model.Article.customses, no session or session was closed

Настало время немного изучить хибернейт. Сессию, ассоциации, ленивость, маппинг.
...
Рейтинг: 0 / 0
19.12.2012, 17:05:06
    #38085484
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Веб-сервис и hibernate
Evgeniy_AleksandrovichSEVERE: java.lang.NullPointerException
at net.sharahov.service.ArticleServiceImpl.listArticles(ArticleServiceImpl.java:38)

Т.е. вот здесь легло:
Код: java
1.
2.
3.
4.
 @WebMethod
    public List<Article> listArticles() {
     return articleDao.listArticles();  //38 строка
    }



Значит тут не получаем список
Код: java
1.
2.
3.
 public List<Article> listArticles() {
        return (List<Article>) sessionFactory.getCurrentSession().createCriteria(Article.class).list();
    }



Пароль, порт правильно.. еще при создании проверил подключение

Ну что за гадания, вам же четко написали, где ошибка. articleDao не инициализирован
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Веб-сервис и hibernate / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]