While a lot of work has been done on the problem of the automated generation of plans that compose web services, the problem of monitoring their execution has still to be investigated. However, the run-time monitoring of web service executions is a compelling requirement, since it makes it possible to detect misbehaviors of external component services that are provided by third parties, and thus not fully under control. In this paper we propose a technique for the automatic generation of monitors as Java programs that check at run-time the execution of plans composing web services and detect violations to interaction protocols and service level agreements. The former correspond to unexpected changes in the planning domain, while the latter represent violations of assumptions that have been used to generate the composition plan.