0

Apache TomCat サーバーを使用して Eclipse で WEB サービス プログラムを実行しています。手動で実行しています。この間、「シンボル LoginResource.class が見つかりません」というエラーが表示されます。

LoginResource.java と LoginApplication.java の 2 つのファイルがあります。両方のファイルがコンパイルされますが、サーバー上で実行するとエラーが発生します。サーバーでプロジェクト全体を直接実行すると実行されますが、サーバーを手動で実行するとエラーが発生します。

これを解決するには、両方のファイル (.class) を同じフォルダーに入れますが、それでも同じエラーが発生します。誰でもこれに対する解決策を持っています。以下は私の 2 つの .java ファイルです - LoginApplication---->

package com.login;

import org.restlet.Application;
import org.restlet.Restlet;
import org.restlet.routing.Router;

public class LoginApplication extends Application {

    public Restlet createInboundRoot() {
    Router router = new Router(getContext());
    router.attach("/login", LoginResource.class);

    return router;
    }
}

ログインリソース--->

package com.login;

import org.json.JSONObject;
//import org.restlet.data.CharacterSet;
import org.restlet.data.Form;
//import org.restlet.data.Language;
//import org.restlet.data.MediaType;
import org.restlet.data.Parameter;
import org.restlet.representation.Representation;
import org.restlet.representation.StringRepresentation;
import org.restlet.resource.Get;
import org.restlet.resource.ServerResource;
import java.sql.*;

public class LoginResource extends ServerResource {

    String name = "Login Example";


    public String getName()
    {
        return name;
    }


    protected Representation put(Representation input) {

        //Representation r = null;
        JSONObject jsonResult = new JSONObject();

        Connection con = null;
        String dbUrl = "jdbc:mysql://localhost:3306/loginDb";
        String driver = "com.mysql.jdbc.Driver";

        //String result = "Login Failed ...";

        try {

            Class.forName(driver).newInstance();
            con = DriverManager.getConnection(dbUrl, "loginDb", "loginDb");
            System.out.println("Connected to the database");

            Statement stm = con.createStatement();
            ResultSet rs = null;

            String inputText = input.getText();
            System.out.println(inputText);
            Form form = new Form(inputText);

            String email = "";
            String password = "";
            for (Parameter entry : form) {

                if(entry.getName().equals("email"))
                {
                    email = entry.getValue();   
                }

                if(entry.getName().equals("password"))
                {
                    password = entry.getValue();                            
                }
                System.out.println(entry.getName() + "=" + entry.getValue());
            }

         if(email.equals("") || password.equals(""))
         {
             System.out.println("EmailId or Password not provided");
             jsonResult.put("success", false);
             jsonResult.put("message", "EmailId or Password not provided");
         }
         else
         {
            //rs = stm.executeQuery("select * from users where email = '" + email + "' and password = '" + password + "'");
            String query = "select * from users where email='" + email + "' and password='" + password + "'";
            rs = stm.executeQuery(query);

            System.out.println("Query = " + query);

            if(rs.next())
            {
                query = "select * from users where email='" + email + "' and password='" + password + "' and verified = 1";
                ResultSet rs2 = stm.executeQuery(query);

                if(rs2.next())
                {
                    System.out.println("Logged In successfully");
                    jsonResult.put("success", true);
                    jsonResult.put("message", "Logged In successfully");
                }
                else
                {
                    System.out.println("Please confirm ");
                    jsonResult.put("success", false);
                    jsonResult.put("message", "Please confirm");
                }
                rs2.close();
            }
            else
            {
                System.out.println("In correct username or password");
                jsonResult.put("success", false);
                jsonResult.put("message", "In correct username or password");
            }

            /*r = new StringRepresentation(
                    jsonResult.toString(),
                    MediaType.APPLICATION_JSON,
                    Language.ALL,
                    CharacterSet.UTF_8);*/

            rs.close();
         }

        stm.close();
        con.close();

        } catch (Exception e) {
            e.printStackTrace();
        }


        System.out.println(jsonResult);
        return new StringRepresentation(jsonResult.toString());
    }

}
4

1 に答える 1

0

問題の原因:クラス ファイルは、Tomcat webapp ディレクトリではなく、eclipse .metadata ディレクトリに配置する必要があります (使用する Eclipse プラグインによって異なります)。

解決策:アプリケーション (war ファイル) を tomcat にデプロイすると、アプリケーションをエラーなしで起動できるようになります。

于 2012-04-24T12:50:17.217 に答える