Перехватчик JAX-WS не запускаетсяJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Перехватчик JAX-WS не запускается

Сообщение Anonymous »

Проблема в том, что после добавления JAX-WS в мой проект, а именно в файл, который будет сгенерирован, я протестировал сгенерированный файл, но ничего связанного с перехватчиком не появилось. Кажется, я его вообще не добавлял, так как проблем не было и перехватчик не работает.
Изображение

вот сгенерированный файл, который, как предполагается, имеет перехватчик

Код: Выделить всё

package Services;

import javax.annotation.Resource;
import javax.jws.*;
import javax.xml.ws.*;
import javax.xml.ws.soap.SOAPBinding;
@HandlerChain(file = "C:/WEBLOGIC/wsbank/TPS/WEB-INF/src/Services/handler.xml")
@WebService(serviceName = "Virement")
public class Virement {

@Resource
private WebServiceContext wsCtx;

@WebMethod
public String WS43(
@WebParam(name = "NumeroDocument") Long numeroDocument,
@WebParam(name = "TypeDocument") Long typeDocument,
@WebParam(name = "RIBBeneficiaire") String ribBeneficiaire,
@WebParam(name = "Description") String description,
@WebParam(name = "RIBDonneurOrdre") String ribDonneurOrdre,
@WebParam(name = "Devise") String devise,
@WebParam(name = "Montant") Long montant
) {
WS43ImplGen ws43ImplGen = new WS43ImplGen();
//return ws43ImplGen.Execute_WS43(
// numeroDocument, typeDocument, ribBeneficiaire, description,
// ribDonneurOrdre, devise, montant, wsCtxr
return "test";

}
}
вот XML-файл цепочки обработчиков

Код: Выделить всё


Services.ParameterValidationHandler


вот логика кода перехватчика

Код: Выделить всё

package Services;

import java.util.Collections;

import javax.xml.namespace.QName;
import javax.xml.soap.SOAPMessage;
import javax.xml.ws.handler.Handler;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
import javax.xml.ws.handler.soap.SOAPMessageContext;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPBody;
import java.util.Set;

public class ParameterValidationHandler implements SOAPHandler {

@Override
public boolean handleMessage(SOAPMessageContext context) {
System.out.println("done");
Boolean isOutbound = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

if (isOutbound) {
System.out.println("Outbound message - Skipping validation.");
} else {
System.out.println("Inbound message - Validating parameters...");

// Get the SOAP message
SOAPMessage message = context.getMessage();
try {
SOAPHeader header = message.getSOAPHeader();
SOAPBody body = message.getSOAPBody();

// Example of accessing the SOAP message parts, you can validate parameters here
System.out.println("SOAP Header: " + header);
System.out.println("SOAP Body: " + body);

// Add your parameter validation logic here
// For example, checking certain elements in the body
} catch (Exception e) {
e.printStackTrace();
}
}

// Return true to continue processing, false to block the message
return true;
}

@Override
public boolean handleFault(SOAPMessageContext context) {
System.out.println("Handling SOAP fault...");
return true;  // You can handle faults here if necessary
}

@Override
public void close(MessageContext context) {
// Cleanup if needed
}

@Override
public Set getHeaders() {
// TODO Implement this method
return Collections.emptySet();
}
}
Так вот в чем проблема, мне нужна ваша помощь, ребята, потому что я схожу с ума, и заранее спасибо за вашу помощь!

Подробнее здесь: https://stackoverflow.com/questions/791 ... g-triggerd
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»