If you're hitting China you're possibly hitting other Asian ports that will also require a visa. My recommendation is to call or go online to a Visa/Passport office and check your full itinerary. Check all your ports as the cruiselines do not take any responsibility for your having the proper doccuments or sometimes even notify you of which ones you need. They leave that responsibility squarely in the lap of the traveler. Even most agents can't tell you more than how to find the information. They are not commonly updated on State Dept. regulations (and changes to the regs.) for each and every country you may visit and certainly not for those with citizenship outside their main customer base.
There are two online sources I've had very good results with. First is www.samspassport.com
and the other is www.zvs.com
which is the one many of the cruiselines refer you to for information.
The above advice is recommended for anyone traveling on South America, Northern Europe, Asia/Far East, Africa or some other cruises. I'll list a few of the common cruise countries that may reqire a visa for US/Canadian citizens. Brazil, Turkey, Russia, Australia, China, Viet Nam, India, South Africa, Kenya, Namibia, Madagascar, Thailand. For Africa and Brazil you'll also be required yellow fever shots for most itineraries.