facebook

Scheme Change Not Implemented

💡
Our Forums Have Moved

For help with installation, bugs reports or feature requests, please head over to our new forums.
Genuitec Community on GitHub

  1. MyEclipse IDE
  2.  > 
  3. Installation, Configuration & Updates
Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #234027 Reply

    bernerbits
    Member

    I am using MyEclipse 3.9.2 in Eclipse Version: 3.1.0 (Build id: I20050627-1435) to deploy to WebLogic 8.1. I have 3 modules, the main module, the test module, and the web module. The test module uses a custom builder to copy its class files over to the web module automatically, then refreshes the web module contents.

    The custom builder uses the following ant script:

    <?xml version="1.0" encoding="UTF-8"?>
    <project name="J2EE Lesson" default="export" basedir=".">
        <target name="export">
            <delete>
                <fileset dir="../J2EE Lesson-Web/docroot/WEB-INF/classes" 
                    includes="**/*Test.class" />
            </delete>
            <javac srcdir="./src" destdir="./classes" debug="on" nowarn="true"
                compiler="org.eclipse.jdt.core.JDTCompilerAdapter" />
            <copy todir="../J2EE Lesson-Web/docroot/WEB-INF/classes">
                <fileset dir="./classes" includes="**/*.class" />
            </copy>
        </target>
    </project>

    However, whenever I make a change to anything in the test module, I get the following error: “weblogic.Server at localhost:4452 (may be out of synch) was unable to replace the running code with the code in the workspace. Reason: Hot code replace failed – Scheme change not implemented”

    I can still see my changes in the web application, but they always correspond to the second-to-most-recent update. This means if I save a file twice, without changing it the second time, the code on the server is up-to-date, though I still receive the error message.

    When I make changes to the web module, there are no problems.

    I cannot include the test module as a dependency in the web module, because it is already dependent on the web module for servlet classes. This would create a dependency cycle.

    Any help would be appreciated.

    Thanks,
    Derek

    #234037

    Scott Anderson
    Participant

    Derek,

    Recompiling the classes with a separate builder and overcopying them causes them to all be updated, completely, in the application server. The remote JVM attempts to reload them using the JPDA spec support, but detects that changes have been made that are outside the spec (the scheme change message), so it lets you know that it can’t reload them. This is simply a limitation in the spec, and as such a limitation in the JVMs involved.

    The test module uses a custom builder to copy its class files over to the web module automatically, then refreshes the web module contents.

    Can you just create a separate source folder within the web project for your tests and set the output folder to be WEB-INF/classes instead of in another project? That will keep the test code separate from your application code while still allowing easy deployment with the web application.

    #234089

    bernerbits
    Member

    I would like to keep the test deployment separate from the web deployment, because I have to keep test code off the production server.

    Although now that I think about it, I suppose I could just as easily disable “test” as a source folder for production mode.

    I rewrote the ant script to do a simple copy, not deleting the current class files if they aren’t up to date. No more error messages, and it hot-deploys fine to JBoss, but I still remain 1 iteration behind in WebLogic. Thoroughly annoying…

    Derek

    #234116

    Scott Anderson
    Participant

    Are you running both JBoss and WebLogic with the same JDK?

    #234139

    bernerbits
    Member

    Not the same VM – I’m launching them both as external servers with the MyEclipse controls. Putting the tests into the Web project seemed to work the best. I think the deployment was 1 iteration behind because the deployment builder was launching before the external builder.

    Thanks,
    Derek

    #234297

    Scott Anderson
    Participant

    Derek,

    That explaination makes sense.

    #283777

    costicost
    Member

    This message has not been recovered.

    #283778

    costicost
    Member

    This message has not been recovered.

Viewing 8 posts - 1 through 8 (of 8 total)
Reply To: Scheme Change Not Implemented

You must be logged in to post in the forum log in