Skip to main content

Axis Web services Problem: No compiler found in your classpath! (you may need to add 'tools.jar')

java.lang.RuntimeException: No compiler found in your classpath! (you may need to add 'tools.jar')

While trying to deploy a web service in Tomcat (1.5) with Axis 1.4, you may have encountered the above error message. If you have faced with that, following information will help you in fixing it.

If you are at servier side, this error may be logged in Tomcat log file as follows.
- No compiler found in your classpath!  (you may need to add 'tools.jar')
java.lang.ClassNotFoundException: sun.tools.javac.Main
 at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1355)
 ....


On client side, you'll receive this error as follows.
Exception in thread "main" AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.lang.RuntimeException: No compiler found in your classpath!  (you may need to add 'tools.jar')
 faultActor: 
 faultNode: 
 faultDetail: 
 {http://xml.apache.org/axis/}hostname:myhost
So the obvious solution you would try is adding %JAVA_HOME%\lib\tools.jar into your CLASSPATH variable even if you were at server side or the client side. But this will not solve the issue.

Solution

Copy %JAVA_HOME%\lib\tools.jar file into %CATALINA_HOME%\common\lib folder and restart tomcat.

Why %JAVA_HOME%\lib\tools.jar is not identified?

If you check happyaxis.jsp page (http://127.0.0.1:8080/axis/happyaxis.jsp); under "Examining System Properties" you'll see that property java.home is set to the JRE path, not the JDK path in your machine. (even though %JAVA_HOME% points to JDK installation). In my machine it looked as follows.
  • java.vm.version=1.6.0_03-b05
  • java.home=C:\Java\jre1.6.0_03
I'm not sure why the JAVA_HOME is not identified correctly, but this solved the issue for me.

Related Articles

Comments

  1. Why are you guys still using Axis? Axis2(ws.apache.org/axis2) is one of the best generation 3 WS engines. Better still, try WSO2 WSAS (http://wso2.org/projects/wsas/java) which is the enterprise ready version of Axis2

    ReplyDelete
  2. Excellent article, it solved my problem quick and efficient.

    Thank you!
    Bradut Dima

    ReplyDelete
  3. while deployin the webservices the following occurs



    > java org.apache.axis.client.AdminClient org\
    kamal\wssample\ws\generated\deploy.wsdd
    Processing file org\kamal\wssample\ws\generated\deploy.wsdd
    Exception: AxisFault
    faultCode: {http://xml.apache.org/axis/}HTTP
    faultSubcode:
    faultString: (404)Not found
    faultActor:
    faultNode:
    faultDetail:
    {}:return code: 404
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <HTML><HEAD>
    <TITLE>404 Not found</TITLE>
    </HEAD><BODY><H1>Not found</H1>
    The requested URL /axis/services/AdminService was not found on this server</BODY></HTML>


    {http://xml.apache.org/axis/}HttpErrorCode:404

    ReplyDelete
  4. Seems you have posted a comment here, but related to web services tutorial . Please refer to that for the answer.

    ReplyDelete
  5. We faced the same error, thanks for posting the solution for us.

    ReplyDelete
  6. very good. right to the point with all and enough necessary information.
    thank you.

    ReplyDelete
  7. Great! Saved a lot of time :)

    ReplyDelete
  8. Thanks kamal, for posting this article.

    ReplyDelete
  9. Thanks a lot Kamal...earlier I had faced same problem and could not resolve it...

    ReplyDelete
  10. great!!! n thanks a lot. my problem got solved. :)

    ReplyDelete
  11. Nice analysis,Thanks a lot.

    ReplyDelete
  12. Thanks for the help!

    ReplyDelete
  13. thanks Kamal... you ROCKS

    ReplyDelete
  14. Thank you.. It worked...

    Vinod

    ReplyDelete
  15. Thanks,the solution really helped me fix my error quickly!

    ReplyDelete
  16. Hi

    I slightly modified the package notation. When I try to deploy I keep getting the following error. Help!!

    E:\C Drive\ENV\Personal\WS\src>java org.apache.axis.client.AdminClient org\calc\
    ws\generated\deploy.wsdd
    Processing file org\calc\ws\generated\deploy.wsdd
    Exception: AxisFault
    faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
    faultSubcode:
    faultString: java.lang.AbstractMethodError: javax.xml.parsers.SAXParser.getXMLR
    eader()Lorg/xml/sax/XMLReader;; nested exception is:
    java.lang.AbstractMethodError: javax.xml.parsers.SAXParser.getXMLReader(
    )Lorg/xml/sax/XMLReader;
    faultActor:
    faultNode:
    faultDetail:
    {http://xml.apache.org/axis/}hostname:TSILPDL02

    ReplyDelete
  17. Thank you very very much! :D

    ReplyDelete
  18. This comment has been removed by a blog administrator.

    ReplyDelete
  19. thank you. that solved mine

    ReplyDelete
  20. Excellent Article I had the same problem and luckily I viewed the solution posted by you and it solved my problem within minutes.
    Thank You Very Much!!!!!!!!!

    ReplyDelete
  21. Good tip, fixed my issue! Thanks for posting.

    For Tomcat 6.0 and later, you can actually just add the tools.jar to the TOMCAT_HOME/lib folder. The common/lib and server/lib folders went out after Tomcat 5.5.

    ReplyDelete
  22. Thanks was helpful

    ReplyDelete
  23. thnx...worked for me

    ReplyDelete
  24. Thank you.. worked for me ...

    ReplyDelete
  25. This comment has been removed by a blog administrator.

    ReplyDelete

Post a Comment

We appreciate your opinions, suggestions and criticism.

Popular posts from this blog

Web Services with Apache Axis 1.4 Tutorial: server and client sides

Java Sorting: Comparator vs Comparable Tutorial

Creative Commons License Digizol by Kamal Mettananda is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 License .
URL of this page must be supplied in attribution
© 2004-2017