Чтобы обратиться к текущей записи, которая должна быть создана, попробуйте запустить before_create
callback.
before_create :inherit_user
и self.blocked_by
теперь должны иметь значение.
Я не думаю, что веб-сервису придется знать о сети или контекстах сервлета или его контексте приложения. Я не вижу, почему этому придется знать любое из этого. Разве это не должно быть намного более пассивно? Введите то, в чем это нуждается, и позвольте ему сделать свою работу. Сервисные взаимодействия с клиентом должны быть основаны на контракте, определенном впереди. Если это должно получить неизвестные значения от контекста некоторого вида, как клиенты будут знать, какие потребности быть установленным или как установить его?
Я пошел бы далее и сказал бы, что веб-сервис должен быть оберткой для сервисного интерфейса Spring. Это - просто еще один выбор среди всех возможных способов выставить его. Ваш веб-сервис должен сделать немного больше, чем маршал и не упорядочить объекты запроса/ответа XML и сотрудничать с сервисами Spring.
Я установил бы Фильтр, который сохраняет ServletContext прежде, чем объединить в цепочку в ThreadLocal
Сделайте так, чтобы ваш компонент веб-службы расширял компонент Spring.
например этот
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
@WebService(
endpointInterface = "Bla",
targetNamespace = "http://bla/v001",
wsdlLocation = "WEB-INF/wsdl/bla.wsdl",
serviceName = "BlaService",
portName = "BlaPort")
public class BlaWs extends SpringBeanAutowiringSupport implements BlaPort {
@Autowired
@Qualifier("dao")
private Dao dao;
...
}