= Support
:jbake-date: 2016-03-16
:jbake-type: page
:jbake-status: published
:jbake-tomeepdf:


Support for Apache TomEE is given freely by the community.
Please be aware when asking questions that the Apache Software Foundation does not have paid developers or dedicated support staff.
All community support comes from volunteers on a volunteer basis.
Joining the link:../community/index.html[Community] as a volunteer and helping your fellow users is highly encouraged!

=== Mailing Lists

- mailto:users@tomee.apache.org[User Mailing List] (mailto:users-subscribe@tomee.apache.org[Subscribe now] | mailto:users-unsubscribe@tomee.apache.org[Unsubscribe]): for all your questions or to share the issues you can meet
- mailto:dev@tomee.apache.org[Dev Mailing List] (mailto:dev-subscribe@tomee.apache.org[Subscribe now] | mailto:dev-unsubscribe@tomee.apache.org[Unsubscribe]): to speak about the project and developments
- mailto:commits@tomee.apache.org[Commits Mailing List] (mailto:commits-subscribe@tomee.apache.org[Subscribe now] | mailto:commits-unsubscribe@tomee.apache.org[Unsubscribe]): receive commits by mail


=== IRC

http://webchat.freenode.net/?channels=openejb[openejb @ freenode] is the channel most of us use.

=== Forums

Our forum (mailing lists archives) can be accessed through http://tomee-openejb.979440.n4.nabble.com/[Nabble].

=== Bugtracker/JIRA

If you encounter a bug or want to submit a patch just go on our https://issues.apache.org/jira/browse/TOMEE[JIRA].

=== Commercial Support

If you need advanced support with SLA please have a look to our link:../community/commercial.html[Commercial] page.
