This paper considers a routing and wavelength assignment problem (RWAP) for the implementation of efficient Wavelength Division Multiplexing all-optical mesh networks without wavelength conversion. For a given physical network and required connections, the solution to the RWAP consists in how to select a suitable path and wavelength among the many possible choices for each connection so that no two paths using the same wavelength pass through the same link, while minimizing the number of required wavelengths. We introduce an integer programming formulation of the RWAP, which has an exponential number of variables, and propose an algorithm to solve it based on the column generation technique. The proposed algorithm can yield high quality solutions and tight lower bounds at the same time. Though the proposed algorithm cannot guarantee optimal solutions, computational results show that the algorithm yields provably good solutions within a reasonable time.