Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблемы с @HandlerChain 
:(
    Опции темы
persten
Дата 18.11.2011, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 11.7.2007

Репутация: нет
Всего: нет



пытаюсь прикрутить SOAPHandler к веб-сервису при помощи @HandlerChain
использую для разработки netbeans 7.0 и glassfish-3.1.1:

код веб-сервиса:

Код

package ws;

import javax.jws.WebService;
import javax.jws.WebMethod;

import javax.jws.HandlerChain;


@WebService(serviceName = "ServerInfo", portName="ServerInfoPort")
@HandlerChain(file="handler-chain.xml")
public class ServerInfo {
    @WebMethod(operationName="getServerName")
    public String getServerName() 
    {
        return "test server";
    }
}



handler-chain.xml:
Код

<handler-chains xmlns="http://java.sun.com/xml/ns/javaee" 
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                xsi:schemaLocation="http://java.sun.com/xml/ns/javaee">
  <handler-chain>
    <handler>
      <handler-name>ws.SoapMessageHandler</handler-name>
      <handler-class>ws.SoapMessageHandler</handler-class>
    </handler>
  </handler-chain>
</handler-chains>


SoapMessageHandler:

Код

package ws;

import java.io.IOException;
import java.util.Set;
import javax.xml.namespace.QName;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPBody;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;

import LIB.LogFile;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.OutputStream;

import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import LIB.LogFile;

public class SoapMessageHandler implements SOAPHandler<SOAPMessageContext>  {
    public String log_file_name = "";
    
    @Override
    public boolean handleMessage(SOAPMessageContext smc) {

        Boolean outboundProperty = (Boolean) smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
        
        
        try 
        {
            if (outboundProperty.booleanValue())
            {
                LogFile.log("outboundProperty.booleanValue()");
            }
            else
            {
                LogFile.log("outboundProperty.booleanValue() == false ");
            }
        }
        catch (Exception e) 
        {
            e.printStackTrace();            
        }    
       
        
        return outboundProperty;

    }
    
    public Set getHeaders() {
        //throw new UnsupportedOperationException("Not supported yet.");
        return null;
    }

    public boolean handleFault(SOAPMessageContext context) {
        //throw new UnsupportedOperationException("Not supported yet.");
        return true;
    }

    public void close(MessageContext context) {
    //throw new UnsupportedOperationException("Not supported yet.");
    }
}



при попытке развернуть веб-сервис glassfish выдает в логах:
SEVERE: component referenced from annotation symbol cannot be found
 symbol: javax.jws.HandlerChain
 location: class ws.ServerInfo

кто нибудь сталкивался с проблемой? помогите пожалуйста!
PM MAIL   Вверх
Kangaroo
Дата 19.11.2011, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


AA - Aussie Animal
****


Профиль
Группа: Участник Клуба
Сообщений: 2042
Регистрация: 7.10.2006
Где: US

Репутация: 14
Всего: 104



А где лежит файл handler-chain.xml? В аннотации нужно указывать относительный путь.


--------------------
Lost....
PM MAIL MSN   Вверх
persten
Дата 19.11.2011, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 11.7.2007

Репутация: нет
Всего: нет



файл лежит там же где и ServerInfo -  в пакете ws, если я кладу его в другие места - он мне выдает что типа - не найден файл "handler-chain.xml",

а где он по идее должен лежать?

приложил проект со всеми файлами

Это сообщение отредактировал(а) persten - 19.11.2011, 14:07

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  JAVA_WEB_EXAMPLES_5.zip 30,02 Kb
PM MAIL   Вверх
persten
Дата 19.11.2011, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 11.7.2007

Репутация: нет
Всего: нет



выяснил что :
SEVERE: component referenced from annotation symbol cannot be found
 symbol: javax.jws.HandlerChain
 location: class ws.ServerInfo

в принципе не влияет на работу, хендлер подключается и работает

а проблема заключалась в самом хендлере:
Код

public boolean handleMessage(SOAPMessageContext smc) {
        Boolean outboundProperty = (Boolean) smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
        ....
        return outboundProperty;
}


в этой функции нужно всегда возвращать true, тогда все работает как надо
Код

public boolean handleMessage(SOAPMessageContext smc) {
        Boolean outboundProperty = (Boolean) smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);
        ....
        return true;
}


надеюсь кому то поможет
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0853 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.