Tomcat 8+ mysql 8 +android studio 开发环境的坑

【趁热打铁写个笔记】
写了个简单的程序测试 从android 提交 数据到 web 上的mysql 数据库
总不成功.其实问题不在于程序在于部署.!

1.Tomcat 8的坑

如何激活服务器.实际上就是环境变量的设置的问题.为了避免,
CATALINA_BASE 与 CATALINA_HOME 不在一个目录的坑,
设置一个 批处理文件.启动web服务器.就无需使用环境变量

set "CATALINA_BASE=%cd%"
set "CATALINA_HOME=D:\tomcat8.5"
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
call "%EXECUTABLE%" start 

Tomcat 8+ mysql 8 +android studio 开发环境的坑_第1张图片

tomcat ins2 是分开的 Tomacat8.5 的实例分身(工作目录)
Tomcat 8+ mysql 8 +android studio 开发环境的坑_第2张图片
除了lib,bin 等主要目录,都复制到这个工作目录.
开始运行的时候启动 刚才写的配置批处理 startup.bat

2.web 缺省目录的坑 分烦人.网上的说的太复杂,反倒是坑越挖越大.

修改  tomcat ins2 下 conf 下的 Server.xml文件

虚拟目录

  

        

	       

      

主要 < context path="" docBase=“studentERP” /> 这个.
其他的方法以后再说.主要就是将 你的工程 studentERP 目录代替了 ROOT 目录

3.jdbc:mysql 库文件包jar的坑. 提示无法解析类名的坑
解决办法就是
放入 Tomcat 主目录下的lib目录下 mysql-connector-java-8.0.16.jar
Tomcat 8+ mysql 8 +android studio 开发环境的坑_第3张图片
工程目录下WEB-INF下的 lib 目录 ,这个目录放入 库文件貌似没有用.
网上,谈的是 Editclipse 的WDA 工程发布所以借鉴不大.

4.客户的 Android 程序
我用的是
Android studio 在
模块
在这里插入图片描述
插件.直接访问服务器.

import com.android.volley.RequestQueue;
....
        mRequestQueue= Volley.newRequestQueue(RegisterManActivity.this);
...

 private void insertUser(final String sid1, final String sname1, final String age1, final String mobile1, final String email1, final String pass1,
                            String ip1) {

        String url1="http://";
        stringip=ip1;
        String contextURLpath="/register.jsp";
        String finalurl=url1+stringip+contextURLpath;

        //http://192.168.2.138:8070/register.jsp
        mStringRequest =new StringRequest(StringRequest.Method.POST, finalurl, new Response.Listener() {
            @Override
            public void onResponse(String response) {
                if (response.equals("record inserted")) {
                    //完成 数据的发送 成功

                    showMesage("Send ok saveed successfully");
                }

            }
        }, new Response.ErrorListener() {
            @Override

Tomcat 8+ mysql 8 +android studio 开发环境的坑_第4张图片
这部分没有问题,

  1. 服务器端 register.jsp文件 还有一个 与 java 1.8 以下不兼容的坑.
    于是我将环境变量从 1.7升级到1.8 问题解决
    脚本才正确识别 mysql-connector-java-8.0.16.jar 这个版本

	try{
		Class.forName("com.mysql.jdbc.Driver");
		conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb","root","773abc338");
		st=conn.prepareStatement("insert into studentInfo(sid,sname,age,mobile,email,pass)values(?,?,?,?,?,?)");

		//set the parameters
		st.setString(1,sid);
		st.setString(2,sname);
		st.setInt(3,Integer.parseInt(age));
		st.setInt(4,Integer.parseInt(mobile));
		st.setString(5,email);
		st.setString(6,pass);
		//execute the query

		int res=st.executeUpdate();

		if(res==0){ //process to result
				System.out.println("record not inserted");
				out.println("not rni");
		}else{
			System.out.println("record inserted");
			out.println("record inserted");
			//response to anroid app / browser windows
		}

  1. 其实如果 Android 客户的直接使用 jdbc 驱动访问 mysql 数据也会出现这个坑
    只要在模块中加入强制编译 到 jdk 1.8 就可以编译通过.
    Tomcat 8+ mysql 8 +android studio 开发环境的坑_第5张图片

最后看看,

Tomcat 8+ mysql 8 +android studio 开发环境的坑_第6张图片

你可能感兴趣的:(Android,studio,开发)