***UPDATE:***

Turns out the issue was caused not by testnet, but by having 2 wallets @ryanofsky found out !

----------

Step to reproduce:

This work on regtest just fine:
```
bitcoind -wallet=test -regtest -rpcpassword=abc -rpcuser=abc
```

Try to make a batch RPC request to /wallet/test:

```
[{"jsonrpc":"1.0","id":1,"method":"getbalance","params":["*"]}]
```
You get the expected result.

However; same things with testnet:
```
bitcoind -wallet=test -testnet -rpcpassword=abc -rpcuser=abc
```

Result:

"Wallet file not specified (must request wallet RPC through /wallet/<filename> uri-path)."

This problem is limited to batched RPC request on testnet as just making the exact same request without the '[' and ']' works fine. It works also fine on regtest, which is crazy. I will look into later.
{
    if (jsonRequest.fHelp || jsonRequest.params.size() > 1)
        throw std::runtime_error(
                "uptime\n"
                        "\nReturns the total uptime of the server.\n"
                        "\nResult:\n"
                        "ttt        (numeric) The number of seconds that the server has been running\n"
                        "\nExamples:\n"
                + HelpExampleCli("uptime", "")
                + HelpExampleRpc("uptime", "")
        );
    return GetTime() - GetStartupTime();
}
/**
 * Call Table
 */
static const CRPCCommand vRPCCommands[] =
{ 
  
    
    { "control",            "help",                   &help,                   {"command"}  },
    { "control",            "stop",                   &stop,                   {}  },
    { "control",            "uptime",                 &uptime,                 {}  },
};
CRPCTable::CRPCTable()