Сервер Android; страница авторизации - PullRequest
3 голосов
/ 24 августа 2010

Мне нужна помощь с сервером, и я новичок в этом. Получил помощь от моего друга, но все еще не может работать. Я не могу войти При запуске приложения нет ошибки, которая называется «обнаружена». Я не могу войти Каким-то образом соединение не было правильно установлено.

Это мой файл Java, открытый в Eclipse;

package log1.log2;



import java.io.ObjectOutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Vector;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.ObjectInputStream;





public class Login extends Activity {


 DBAdapter db = new DBAdapter(this);
/** Called when the activity is first created. */

 private EditText etUsername;
 private EditText etPassword;
 private Button btnLogin;
 private Button btnRegister;
 private TextView lblResult;
 private String username;
 private String password;
 private String user;
 private String value;
 Vector SendVEctor = new Vector();
 Vector receiveVEctor = new Vector(); 

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        // Get the EditText and Button References
        etUsername = (EditText)findViewById(R.id.usernametxt);
        etPassword = (EditText)findViewById(R.id.passwordtxt);
        btnLogin = (Button)findViewById(R.id.btnLogin);
        btnRegister = (Button)findViewById(R.id.btnRegister);
        lblResult = (TextView)findViewById(R.id.msglbl);

        //Cursor c = (Cursor) db.getAllTitles();

        //Button btnArrival = (Button) findViewById(R.id.btnRegister);
     //btnArrival.setOnClickListener(this);


    // Set Click Listener

        btnRegister.setOnClickListener(new OnClickListener() {
         @Override
         public void onClick(View v) {
          Intent intent=new Intent(Login.this,Register.class);
            startActivity(intent);

         }
        });

    btnLogin.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View v) 
 {


  String a = "http://172.27.32.251:9090/jsp-examples/ferryhub";
   URL url = null;
      HttpURLConnection httpurlconnection = null;
      try {
       url = new URL(a);
       httpurlconnection = (HttpURLConnection) url
         .openConnection();
       httpurlconnection.setDoOutput(true);
       httpurlconnection.setRequestMethod("POST");



      Toast.makeText(Login.this, a, Toast.LENGTH_SHORT).show();
       Toast.makeText(Login.this, "Toast1", Toast.LENGTH_SHORT).show();
       ObjectOutputStream dos = new ObjectOutputStream(httpurlconnection.getOutputStream());
       SendVEctor.add(etUsername.getText().toString());//foodname
       SendVEctor.add(etPassword.getText().toString());//foodname

       dos.writeObject(SendVEctor);

                 dos.close();


                 ObjectInputStream ois = new ObjectInputStream(httpurlconnection.getInputStream());

                 receiveVEctor = (Vector)ois.readObject();

       Toast.makeText(Login.this, receiveVEctor.get(0).toString(), Toast.LENGTH_SHORT).show();

       if(receiveVEctor.equals("Login Success"))
       { etUsername.setText("");
        etPassword.setText("");
         Toast.makeText(Login.this, receiveVEctor.get(0).toString(), Toast.LENGTH_SHORT).show();
        Intent myIntent = new Intent(((View) v).getContext(),Register.class);
     startActivityForResult(myIntent, 1);

       }//end inner if
       else if(receiveVEctor.equals("Login Fail"))
       { etUsername.setText("");
        etPassword.setText("");
         Toast.makeText(Login.this, receiveVEctor.get(0).toString(), Toast.LENGTH_SHORT).show();


       }//end inner if



       else
       {
        Toast.makeText(Login.this, "error", Toast.LENGTH_SHORT).show(); 
       }


      }//end try
      catch (Exception e) {
       e.printStackTrace();
       Toast.makeText(Login.this, "error2", Toast.LENGTH_SHORT).show();

      }//end catch 
      finally {
       if (httpurlconnection != null)
        httpurlconnection.disconnect();
      }//end finally
  }//end else






   });
 }

}

Каждый раз, когда я запускаю свое приложение, появляется тост с сообщением error2 после отображения http://172.27.32.251:9090/jsp-examples/ferryhub и toast1.

Если я не ошибаюсь, проблема в том, что нет успешного подключения к сервлету. Надеюсь вскоре услышать хорошие советы. Спасибо, что прочитали мой вопрос.

-Dayne


Привет еще раз

Я снова запустил программу без редактирования и проверил logcat. Я не могу найти никаких ошибок ..

вот как это выглядит:

08-24 07:52:37.875: INFO/NotificationService(54): enqueueToast pkg=log1.log2 callback=android.app.ITransientNotification$Stub$Proxy@43904308 duration=0
08-24 07:52:37.895: INFO/NotificationService(54): enqueueToast pkg=log1.log2 callback=android.app.ITransientNotification$Stub$Proxy@43925200 duration=0
08-24 07:52:37.945: WARN/System.err(216): java.net.SocketException: Permission denied (maybe missing INTERNET permission)
08-24 07:52:37.975: WARN/System.err(216):     at org.apache.harmony.luni.platform.OSNetworkSystem.createSocketImpl(Native Method)
08-24 07:52:37.975: WARN/System.err(216):     at org.apache.harmony.luni.platform.OSNetworkSystem.createSocket(OSNetworkSystem.java:85)
08-24 07:52:37.975: WARN/System.err(216):     at org.apache.harmony.luni.net.PlainSocketImpl2.create(PlainSocketImpl2.java:59)
08-24 07:52:37.975: WARN/System.err(216):     at java.net.Socket.checkClosedAndCreate(Socket.java:829)
08-24 07:52:37.975: WARN/System.err(216):     at java.net.Socket.connect(Socket.java:984)
08-24 07:52:37.975: WARN/System.err(216):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:67)
08-24 07:52:37.975: WARN/System.err(216):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionManager$ConnectionPool.getHttpConnection(HttpConnectionManager.java:151)
08-24 07:52:37.975: WARN/System.err(216):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionManager.getConnection(HttpConnectionManager.java:73)
08-24 07:52:37.975: WARN/System.err(216):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getHTTPConnection(HttpURLConnection.java:826)
08-24 07:52:37.975: WARN/System.err(216):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:812)
08-24 07:52:37.975: WARN/System.err(216):     at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1153)
08-24 07:52:37.984: WARN/System.err(216):     at log1.log2.Login$2.onClick(Login.java:95)
08-24 07:52:37.984: WARN/System.err(216):     at android.view.View.performClick(View.java:2344)
08-24 07:52:37.984: WARN/System.err(216):     at android.view.View.onKeyUp(View.java:3939)
08-24 07:52:37.984: WARN/System.err(216):     at android.widget.TextView.onKeyUp(TextView.java:4413)
08-24 07:52:37.984: WARN/System.err(216):     at android.view.KeyEvent.dispatch(KeyEvent.java:895)
08-24 07:52:37.984: WARN/System.err(216):     at android.view.View.dispatchKeyEvent(View.java:3647)
08-24 07:52:37.984: WARN/System.err(216):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:746)
08-24 07:52:37.984: WARN/System.err(216):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:746)
08-24 07:52:37.984: WARN/System.err(216):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:746)
08-24 07:52:37.984: WARN/System.err(216):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:746)
08-24 07:52:37.984: WARN/System.err(216):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1708)
08-24 07:52:37.984: WARN/System.err(216):     at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1197)
08-24 07:52:37.994: WARN/System.err(216):     at android.app.Activity.dispatchKeyEvent(Activity.java:1967)
08-24 07:52:37.994: WARN/System.err(216):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1684)
08-24 07:52:37.994: WARN/System.err(216):     at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2329)
08-24 07:52:37.994: WARN/System.err(216):     at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2299)
08-24 07:52:37.994: WARN/System.err(216):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1621)
08-24 07:52:37.994: WARN/System.err(216):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-24 07:52:37.994: WARN/System.err(216):     at android.os.Looper.loop(Looper.java:123)
08-24 07:52:37.994: WARN/System.err(216):     at android.app.ActivityThread.main(ActivityThread.java:4203)
08-24 07:52:37.994: WARN/System.err(216):     at java.lang.reflect.Method.invokeNative(Native Method)
08-24 07:52:37.994: WARN/System.err(216):     at java.lang.reflect.Method.invoke(Method.java:521)
08-24 07:52:37.994: WARN/System.err(216):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
08-24 07:52:37.994: WARN/System.err(216):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
08-24 07:52:37.994: WARN/System.err(216):     at dalvik.system.NativeStart.main(Native Method)
08-24 07:52:38.004: INFO/NotificationService(54): enqueueToast pkg=log1.log2 callback=android.app.ITransientNotification$Stub$Proxy@438ad2c8 duration=0
08-24 07:52:38.206: INFO/ARMAssembler(54): generated scanline__00000077:03515104_00001A01_00000000 [ 46 ipp] (68 ins) at [0x2ac120:0x2ac230] in 1976229 ns

Я надеюсь, что вы укажете на фактическую ошибку и скажете мне, что я должен делать.

Спасибо, что прочитали мой пост.

-Dayne


Привет еще раз

Что касается заявления о разрешении доступа в Интернет, я сделал это в моей строке XML-файла манифеста. Я вставляю его при входе в систему, как показано ниже:

<activity android:name="Login">
            <intent-filter>
                <action android:name="android.intent.action.EDIT" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <uses-permission android:name="android.permission.INTERNET"/>
         <activity android:name="AdminMain">
            <intent-filter>
                <action android:name="android.intent.action.EDIT" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

Есть ли другие возможные вещи, которые я мог бы пропустить? Я надеюсь, у вас есть кое-что сказать мне. Спасибо.

-Dayne

1 Ответ

0 голосов
/ 24 августа 2010

Все это есть:

java.net.SocketException: Permission denied (maybe missing INTERNET permission)

Проверьте эту страницу: http://developer.android.com/reference/android/Manifest.permission.html

Вам необходимо добавить «android.permission.INTERNET» в манифест.xml-файл, вся строка должна выглядеть вот так <uses-permission android:name="android.permission.INTERNET" />.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...