Although web services are generally envisioned as being stateless, some of them are implicitly stateful. The reason is that the web services often work as front-ends to enterprise systems and are used in a session-oriented way by the clients. Contrary to the case of stateless services, for a stateful web service there exist constraints to the order in which the operations of the service may be invoked. However, specification of such constraints is not a standard part of a web service interface, and compliance with such constraints is not checked by the standard web service development tools. Therefore, we propose in this paper to extend a web service interface by a constraint definition that is based on behavior protocols. Also, we implemented a tool that checks whether a given BPEL code complies with the constraints of all stateful web services it communicates with. The key idea behind the tool is to translate the BPEL code into Java and then to check the Java program using Java Path...