I agree with the previous poster. Locale is usually related to internationalization, which EJB should be independent of. I can think of some usecases where you will have different logic based on locale. If you must, you can pass locale from the presentation layer.
Locale locale = request.getLocale();
This method is actually defined in the ServletRequest interface. The value you receive will depend on the the locale set when the http request (or user's browser). Locale.getDefault() always returns the locale of the JVM and hence should not be trusted.
Long story short, pass the locale to the business layer if you have to. BUT try not to pass the Locale object itself, pass the
String value that way business layer is less dependent on the [http] presentation layer
C