We consider the routing and wavelength assignment (RWA) problem on WDM ring networks without wavelength conversion. When the physical network and required connections are given, RWA is the problem to select a suitable path and wavelength among the many possible choices for each connection such that no two paths using the same wavelength pass through the same link. We give an integer programming formulation of the problem and propose an algorithm to solve it. Although the formulation has exponentially many variables, we solve the linear programming relaxation of it by using the column generation technique. We solve the column generation problem efficiently by decomposing the problem into several subproblems. After solving the linear programming relaxation, we apply the branch-and-price procedure to get an optimal solution. We test the proposed algorithm on some randomly generated data. Test results show that the algorithm gives optimal solutions to almost all instances under the given node limit of the branch-and-bound tree.