BPEL (Business Process Execution Language) is one of the dominant ways to specify interactions between Web services. However, it is difficult to deal with behavioral properties of web services. Typically, well defined protocols may be violated by clients, thus leading servers to inconsistent states. In this paper, we propose to tackle this problem thanks to an automatically generated runtime monitor from the BPEL specification. First, we extract a web service protocol from its specification. Then we generate a monitor capturing communications from/to the server and detecting inappropriate use of this protocol.