<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->

- [ ] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.

### Environment

* Dubbo version: 3.1.1
* Operating System version: macosx
* Java version: 17

### Steps to reproduce this issue
provider:
```
    <dubbo:protocol name="dubbo" serialization="fastjson2" port="20880"></dubbo:protocol>
    <dubbo:service protocol="dubbo" serialization="fastjson2" version="${dubbo.version:3.1.1}" loadbalance="roundrobin" interface="cn.app.service.TestService" timeout="50" registry="dubboRegistry"
                   ref="testService"/>
```
consumer:
The serialization method remains the same as hesian2
![image](https://user-images.githubusercontent.com/19943636/197732272-91b6260a-b23c-4e35-9ac1-980ce8bf75bd.png)
![image](https://user-images.githubusercontent.com/19943636/197732300-eb5fccec-0de0-4211-b240-a0fbd008c1ad.png)

Self-declared dubbo interfaces are normal
![image](https://user-images.githubusercontent.com/19943636/197733004-42fa2710-3ba3-4969-a302-b1706938c9e6.png)


Pls. provide [GitHub address] to reproduce this issue.

### Expected Behavior

<!-- What do you expect from the above steps？-->

### Actual Behavior

<!-- What actually happens? -->

If there is an exception, please attach the exception trace:

```
Just put your stack trace here!
```

private ProtocolConfig generateMetadataProtocol() {
        
        String specifiedProtocol = getSpecifiedProtocol();
        
        Integer port = getSpecifiedPort();
        ProtocolConfig protocolConfig = new ProtocolConfig();
        protocolConfig.setName(specifiedProtocol);
        if (port == null || port < -1) {
            try {
                if (logger.isInfoEnabled()) {
                    logger.info("Metadata Service Port hasn't been set will use default protocol defined in protocols.");
                }
                Protocol protocol = applicationModel.getExtensionLoader(Protocol.class).getExtension(specifiedProtocol);
                if (protocol != null && protocol.getServers() != null) {
                    Iterator<ProtocolServer> it = protocol.getServers().iterator();
                    
                    
                    if (it.hasNext()) {
                        ProtocolServer server = it.next();
                        String rawPort = server.getUrl().getParameter(BIND_PORT_KEY);
                        if (rawPort == null) {
                            String addr = server.getAddress();
                            rawPort = addr.substring(addr.indexOf(":") + 1);
                        }
                        protocolConfig.setPort(Integer.parseInt(rawPort));
                    } else {
                        Integer protocolPort = getProtocolConfig(specifiedProtocol).getPort();
                        if (null != protocolPort && protocolPort != -1) {
                            protocolConfig.setPort(protocolPort);
                        }