Faits : A. Par jugement du 21 novembre 2014, le Tribunal de police de l'arrondissement de Lausanne a libéré X._ de la prévention de désagréments causés par la confrontation à un acte d'ordre sexuel en raison de la prescription et de la prévention de contrainte sexuelle. Il l'a reconnu coupable d'injure, de menaces et d'utilisation abusive d'une installation de télécommunication. Il l'a condamné à une peine pécuniaire de 120 jours-amende à 50 fr. le jour, avec sursis partiel, soit 60 jours-amende à titre ferme et 60 jours-amende avec sursis pendant trois ans. B. Par jugement du 28 mai 2015, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a partiellement admis l'appel de X._ et l'appel joint de A._. Partant, elle a confirmé la libération de la prévention de désagréments causés par la confrontation à un acte d'ordre sexuel en raison de la prescription, a libéré X._ de la prévention de menaces et l'a reconnu coupable de contrainte sexuelle, d'injure et d'utilisation abusive d'une installation de télécommunication. Elle a condamné X._ à une peine pécuniaire de 240 jours-amende à 50 fr. le jour, avec sursis partiel, soit 120 jours-amende à titre ferme et 120 jours-amende avec sursis pendant trois ans. Elle l'a aussi condamné à payer à A._ une indemnité pour tort moral de 2'500 francs. Elle a mis les frais de première instance à la charge de X._ et a réparti les frais d'appel à raison de quatre cinquièmes à la charge de X._ et d'un cinquième à celle de A._. L'autorité précédente a retenu les faits suivants. En mai 2010, à G._, au chemin B._, dans les locaux de l'entreprise C._ Sàrl, X._ a, de force et à deux reprises, amené A._ contre son gré au sol. A une des deux reprises, il a mis sa main à même le sexe de A._, a tenté de l'embrasser et de lui toucher la poitrine. De septembre 2011 à mars 2012, X._ a harcelé A._ en lui envoyant environ une dizaine de SMS par jour. Le 8 mars 2012, X._ a traité A._ de « grosse pute », « grosse merde » et « connasse » dans l'établissement « D._ » à Lausanne. C. X._ interjette un recours en matière pénale au Tribunal fédéral contre le jugement du 28 mai 2015. Il conclut, avec suite de frais et dépens, principalement à sa libération de tous les chefs d'accusation retenus contre lui. Partant, il demande à être libéré de toute peine et du paiement de l'indemnité pour tort moral. Subsidiairement, il conclut au renvoi de la cause à la juridiction d'appel pour nouvelle décision au sens des considérants.