JsonRpc4j-----修改开源代码jsonRpc4j

版权声明:本文为博主原创文章,未经博主允许不得转载。 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>

猜你喜欢

转载自blog.csdn.net/zhangminemail/article/details/83480264
A4J