<!-- 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!
```

assertEquals("", CollectionUtils.join(list, "/"));
        list = Arrays.asList("x");
        assertEquals("x", CollectionUtils.join(list, "-"));
        list = Arrays.asList("a", "b");
        assertEquals("a/b", CollectionUtils.join(list, "/"));
    }
    @Test
    public void testMapEquals() throws Exception {
        assertTrue(CollectionUtils.mapEquals(null, null));
        assertFalse(CollectionUtils.mapEquals(null, new HashMap<String, String>()));
        assertFalse(CollectionUtils.mapEquals(new HashMap<String, String>(), null));
        assertTrue(CollectionUtils.mapEquals(CollectionUtils.toStringMap("1", "a", "2", "b"), CollectionUtils.toStringMap("1", "a", "2", "b")));
        assertFalse(CollectionUtils.mapEquals(CollectionUtils.toStringMap("1", "a"), CollectionUtils.toStringMap("1", "a", "2", "b")));
    }
    @Test
    public void testStringMap1() throws Exception {
        assertThat(toStringMap("key", "value"), equalTo(Collections.singletonMap("key", "value")));
    }
    @Test
    public void testStringMap2() throws Exception {
        Assertions.assertThrows(IllegalArgumentException.class, () -> toStringMap("key", "value", "odd"));
    }
    @Test
    public void testToMap1() throws Exception {
        assertTrue(CollectionUtils.toMap().isEmpty());
        Map<String, Integer> expected = new HashMap<String, Integer>();
        expected.put("a", 1);
        expected.put("b", 2);
        expected.put("c", 3);
        assertEquals(expected, CollectionUtils.toMap("a", 1, "b", 2, "c", 3));