All things 'static' are generally seen as "not elegant" in Java, so using a ServiceLocator would make "more elegant". YMMV.
Also, "elegant" doesn't necessarily match with "pragmatic", so there might be additional costs to making things "elegant".
If you ask me, I'd go with instance methods and a ServiceLocator (and dependency injection), because it makes testing the service with mock dependencies easier (less error prone, make it possible to test in parallel with different dependency mocks, etc.)