<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have searched the <a href="https://github.com/apache/incubator-dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have checked the <a href="https://github.com/apache/incubator-dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: master branch</li>
<li>Operating System version:  Mac os</li>
<li>Java version:  1.8</li>
</ul>
<h3 dir="auto">Steps to reproduce this issue</h3>
<p dir="auto"><code class="notranslate">org.apache.dubbo.rpc.protocol.dubbo.support.DemoService</code> add method</p>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content=" String getPerson(Yee yee);"><pre class="notranslate"> <span class="pl-smi">String</span> <span class="pl-s1">getPerson</span>(<span class="pl-smi">Yee</span> <span class="pl-s1">yee</span>);</pre></div>
<p dir="auto"><code class="notranslate">org.apache.dubbo.rpc.protocol.dubbo.support.DemoServiceImpl</code></p>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="    @Override
    public String getPerson(Yee yee) {
        return yee.getAddress();
    }"><pre class="notranslate">    <span class="pl-c1">@</span><span class="pl-c1">Override</span>
    <span class="pl-k">public</span> <span class="pl-smi">String</span> <span class="pl-s1">getPerson</span>(<span class="pl-smi">Yee</span> <span class="pl-s1">yee</span>) {
        <span class="pl-k">return</span> <span class="pl-s1">yee</span>.<span class="pl-en">getAddress</span>();
    }</pre></div>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="public class Yee implements Serializable {
    private String address;
}

public class Man implements Serializable {
    private static final long serialVersionUID = 1L;
    private String name;
    private int age;
}"><pre class="notranslate"><span class="pl-k">public</span> <span class="pl-k">class</span> <span class="pl-smi">Yee</span> <span class="pl-k">implements</span> <span class="pl-smi">Serializable</span> {
    <span class="pl-k">private</span> <span class="pl-smi">String</span> <span class="pl-s1">address</span>;
}

<span class="pl-k">public</span> <span class="pl-k">class</span> <span class="pl-smi">Man</span> <span class="pl-k">implements</span> <span class="pl-smi">Serializable</span> {
    <span class="pl-k">private</span> <span class="pl-k">static</span> <span class="pl-k">final</span> <span class="pl-smi">long</span> <span class="pl-s1">serialVersionUID</span> = <span class="pl-c1">1L</span>;
    <span class="pl-k">private</span> <span class="pl-smi">String</span> <span class="pl-s1">name</span>;
    <span class="pl-k">private</span> <span class="pl-smi">int</span> <span class="pl-s1">age</span>;
}</pre></div>
<p dir="auto"><code class="notranslate">org.apache.dubbo.rpc.protocol.dubbo.support.DemoServiceImpl</code> add UT</p>
<div class="highlight highlight-source-java notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="   @Test
    public void testInvokeMultiJsonParamMethod2() throws RemotingException {
        mockChannel = mock(Channel.class);
        given(mockChannel.getAttribute(&quot;telnet.service&quot;)).willReturn(null);
        given(mockChannel.getLocalAddress()).willReturn(NetUtils.toAddress(&quot;127.0.0.1:5555&quot;));
        given(mockChannel.getRemoteAddress()).willReturn(NetUtils.toAddress(&quot;127.0.0.1:20886&quot;));

        ProviderModel providerModel = new ProviderModel(&quot;org.apache.dubbo.rpc.protocol.dubbo.support.DemoService&quot;, new DemoServiceImpl(), DemoService.class);
        ApplicationModel.initProviderModel(&quot;org.apache.dubbo.rpc.protocol.dubbo.support.DemoService&quot;, providerModel);
        String param = &quot;{\&quot;address\&quot;:\&quot;Dubbo\&quot;}&quot;;
        String result = invoke.telnet(mockChannel, &quot;getPerson(&quot; + param + &quot;)&quot;);
        assertTrue(result.contains(&quot;result: \&quot;Dubbo&quot;));
    }"><pre class="notranslate">   <span class="pl-c1">@</span><span class="pl-c1">Test</span>
    <span class="pl-k">public</span> <span class="pl-smi">void</span> <span class="pl-s1">testInvokeMultiJsonParamMethod2</span>() <span class="pl-k">throws</span> <span class="pl-smi">RemotingException</span> {
        <span class="pl-s1">mockChannel</span> = <span class="pl-en">mock</span>(<span class="pl-smi">Channel</span>.<span class="pl-k">class</span>);
        <span class="pl-en">given</span>(<span class="pl-s1">mockChannel</span>.<span class="pl-en">getAttribute</span>(<span class="pl-s">"telnet.service"</span>)).<span class="pl-en">willReturn</span>(<span class="pl-c1">null</span>);
        <span class="pl-en">given</span>(<span class="pl-s1">mockChannel</span>.<span class="pl-en">getLocalAddress</span>()).<span class="pl-en">willReturn</span>(<span class="pl-smi">NetUtils</span>.<span class="pl-en">toAddress</span>(<span class="pl-s">"127.0.0.1:5555"</span>));
        <span class="pl-en">given</span>(<span class="pl-s1">mockChannel</span>.<span class="pl-en">getRemoteAddress</span>()).<span class="pl-en">willReturn</span>(<span class="pl-smi">NetUtils</span>.<span class="pl-en">toAddress</span>(<span class="pl-s">"127.0.0.1:20886"</span>));

        <span class="pl-smi">ProviderModel</span> <span class="pl-s1">providerModel</span> = <span class="pl-k">new</span> <span class="pl-smi">ProviderModel</span>(<span class="pl-s">"org.apache.dubbo.rpc.protocol.dubbo.support.DemoService"</span>, <span class="pl-k">new</span> <span class="pl-smi">DemoServiceImpl</span>(), <span class="pl-smi">DemoService</span>.<span class="pl-k">class</span>);
        <span class="pl-smi">ApplicationModel</span>.<span class="pl-en">initProviderModel</span>(<span class="pl-s">"org.apache.dubbo.rpc.protocol.dubbo.support.DemoService"</span>, <span class="pl-s1">providerModel</span>);
        <span class="pl-smi">String</span> <span class="pl-s1">param</span> = <span class="pl-s">"{<span class="pl-s">\"</span>address<span class="pl-s">\"</span>:<span class="pl-s">\"</span>Dubbo<span class="pl-s">\"</span>}"</span>;
        <span class="pl-smi">String</span> <span class="pl-s1">result</span> = <span class="pl-s1">invoke</span>.<span class="pl-en">telnet</span>(<span class="pl-s1">mockChannel</span>, <span class="pl-s">"getPerson("</span> + <span class="pl-s1">param</span> + <span class="pl-s">")"</span>);
        <span class="pl-en">assertTrue</span>(<span class="pl-s1">result</span>.<span class="pl-en">contains</span>(<span class="pl-s">"result: <span class="pl-s">\"</span>Dubbo"</span>));
    }</pre></div>
<ol dir="auto">
<li>UT fail,Find the wrong overload method</li>
</ol>
<h3 dir="auto">Expected Result</h3>
<p dir="auto">Call <code class="notranslate">getPerson(Yee yee)</code></p>
<h3 dir="auto">Actual Result</h3>
<p dir="auto">Call <code class="notranslate">getPerson(Man man)</code></p>
<h3 dir="auto">Suggestion</h3>
<p dir="auto">If the overload method parameters are different in length,  allowed to not pass <code class="notranslate">class</code> parameter, otherwise prompted user must  pass the <code class="notranslate">class</code> parameter.</p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/beiwei30/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/beiwei30">@beiwei30</a></p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have searched the <a href="https://github.com/apache/incubator-dubbo/issues">issues</a> of this repository and believe that this is not a duplicate.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I have checked the <a href="https://github.com/apache/incubator-dubbo/blob/master/FAQ.md">FAQ</a> of this repository and believe that this is not a duplicate.</li>
</ul>
<h3 dir="auto">Environment</h3>
<ul dir="auto">
<li>Dubbo version: v2.6.5</li>
<li>Operating System version: Linux</li>
<li>Java version: v1.8</li>
</ul>
<h3 dir="auto">Steps to reproduce this issue</h3>
<ol dir="auto">
<li>use hessian protocol 2.HTTP request response exception</li>
</ol>
<p dir="auto">Pls. provide [GitHub address] to reproduce this issue.</p>
<h3 dir="auto">Expected Result</h3>
<p dir="auto">I hope the request succeeds.</p>
<h3 dir="auto">Actual Result</h3>
<p dir="auto">What actually happens?</p>
<p dir="auto">java.lang.IllegalArgumentException: argument type mismatch<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0]<br>
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0]<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0]<br>
at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0]<br>
at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:302) ~[hessian-4.0.37.jar!/:3.1.0]<br>
at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:198) ~[hessian-4.0.37.jar!/:3.1.0]<br>
at com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:139) ~[hessian-4.0.37.jar!/:3.1.0]<br>
at com.alibaba.dubbo.rpc.protocol.hessian.HessianProtocol$HessianHandler.handle(HessianProtocol.java:182) ~[dubbo-2.6.5.jar!/:2.6.5]<br>
at com.alibaba.dubbo.remoting.http.servlet.DispatcherServlet.service(DispatcherServlet.java:61) ~[dubbo-2.6.5.jar!/:2.6.5]<br>
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) ~[javax.servlet-api-3.1.0.jar!/:3.1.0]<br>
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) ~[?:?]<br>
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) ~[?:?]<br>
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) ~[?:?]<br>
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) ~[?:?]<br>
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) ~[?:?]<br>
at org.mortbay.jetty.Server.handle(Server.java:326) ~[?:?]<br>
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) ~[?:?]<br>
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) ~[?:?]<br>
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) ~[?:?]<br>
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) ~[?:?]<br>
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) ~[?:?]<br>
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) ~[?:?]<br>
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) ~[?:?]</p>