Согласно этой записи , Metro не поддерживает ws-policy программно.Это был 2009 год, поэтому я не знаю, так ли это до сих пор.
Metro может также получить политику непосредственно из WSDL, если вы не хотите использовать файлы wsit (если у вас есть политика вэто вообще WSDL).
Так я поступил в своем классе обслуживания, созданном Metro.Он загружает политику прямо из WSDL, который находится в моем classpath, и будет применять все политики во время выполнения, при условии, что вы установили Metro на свой сервер приложений и у вас нет конфликтующих зависимостей в вашем проекте (этот был немногоИз-за трудностей, с которыми мне пришлось столкнуться, некоторые из моих зависимостей имели jaxws-rt
в качестве зависимости, которая может испортить разрешение политики Metros).
private final static URL CUSTOMERSERVICE_WSDL_LOCATION;
static {
CUSTOMERSERVICE_WSDL_LOCATION =
CustomerService.class.getClassLoader().getResource("Customer/CustomerService.wsdl");
}
public CustomerService(URL wsdlLocation, QName serviceName) {
super(wsdlLocation, serviceName);
}