版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangminemail/article/details/83480264
1、进入gitHub下载jsonRpc4j源代码
https://mvnrepository.com/search?q=jsonrpc4j
2、fork代码
登录账号,fork代码到个人账户仓库
3、通过git clone代码
复制clone下载路径
Git Base Here(git clone代码)
扫描二维码关注公众号,回复:
3870416 查看本文章
4、导入到开发工具进行源代码修改
AutoJsonRpcClientProxyCreator.java修改appendBasePath
/**
* Appends the base path to the path found in the interface.
*/
private String appendBasePath(String path) {
// try {
String url = baseUrl.toString();
if(!url.endsWith("/")){
url = url.concat("/");
}
return url.concat(path);
// return new URL(baseUrl, path).toString();
// } catch (MalformedURLException e) {
// throw new IllegalArgumentException(format("Cannot combine URLs '%s' and '%s' to valid URL.", baseUrl, path), e);
// }
}
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {
SimpleMetadataReaderFactory metadataReaderFactory = new SimpleMetadataReaderFactory(applicationContext);
DefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory) beanFactory;
String resolvedPath = resolvePackageToScan();
logger.debug("Scanning '{}' for JSON-RPC service interfaces.", resolvedPath);
try {
for (Resource resource : applicationContext.getResources(resolvedPath)) {
if (resource.isReadable()) {
MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(resource);
ClassMetadata classMetadata = metadataReader.getClassMetadata();
AnnotationMetadata annotationMetadata = metadataReader.getAnnotationMetadata();
String jsonRpcPathAnnotation = JsonRpcService.class.getName();
if (annotationMetadata.isAnnotated(jsonRpcPathAnnotation)) {
String className = classMetadata.getClassName();
// String path = (String) annotationMetadata.getAnnotationAttributes(jsonRpcPathAnnotation).get("value");
String path = className;
logger.debug("Found JSON-RPC service to proxy [{}] on path '{}'.", className, path);
registerJsonProxyBean(defaultListableBeanFactory, className, path);
}
}
}
} catch (IOException e) {
throw new IllegalStateException(format("Cannot scan package '%s' for classes.", resolvedPath), e);
}
}
5、发布到本地仓库
6、项目引用
<dependency>
<groupId>com.imooc.jsonrpc4j</groupId>
<artifactId>jsonrpc4j</artifactId>
<version>1.5.3</version>
</dependency>