一、包整体说明javax.xml.rpc.holders是JAX-RPC 1.1Java XML RPC旧版SOAP WebService规范下的标准子包专门用于传引用输出参数out/inout 参数对应WSDL里的out、inout类型参数场景。注意JAX-RPC 早已被 JAX-WS (javax.xml.ws) 全面淘汰该包属于老旧Java EE遗留APIJava 8高版本JDK默认不再内置。二、核心作用WebService接口方法默认只有返回值无法同时返回多个输出参数WSDL支持out仅输出、inout入参出参参数Java层无法直接传基本类型/包装类修改实参于是Holder持有者类做包装把要输出的值存入holder.value服务端赋值后客户端可从同一个Holder对象取出返回值兼容多返回参数的SOAP接口。三、包内常用内置Holder类都实现javax.xml.rpc.holders.Holder标记接口全部是线程不安全的简单包装类类名包装类型BooleanHolderBooleanByteHolderByteShortHolderShortIntHolderIntegerLongHolderLongFloatHolderFloatDoubleHolderDoubleStringHolderStringBigIntegerHolderBigIntegerBigDecimalHolderBigDecimalObjectHolderObject通用统一结构示例IntHolderpublicclassIntHolderimplementsHolder{publicIntegervalue;// 公共字段直接读写publicIntHolder(){}publicIntHolder(Integerinitial){this.valueinitial;}}四、典型代码示例inout参数1. 接口定义JAX-RPCimportjavax.xml.rpc.holders.IntHolder;// ina,binoutsumoutproductpublicinterfaceCalcService{voidcalc(inta,intb,IntHoldersum,IntHolderproduct);}2. 客户端调用CalcServiceservicegetStub();IntHoldersumHoldernewIntHolder();IntHoldermulHoldernewIntHolder();service.calc(3,5,sumHolder,mulHolder);// 从Holder取出输出结果System.out.println(和sumHolder.value);System.out.println(积mulHolder.value);五、Maven依赖JDK默认不带必须手动引入JAX-RPC 规范包实现包!-- JAX-RPC API 核心 --dependencygroupIdjavax.xml.rpc/groupIdartifactIdjavax.xml.rpc-api/artifactIdversion1.1/version/dependency!-- 常用实现Apache Axis1经典JAX-RPC实现 --dependencygroupIdorg.apache.axis/groupIdartifactIdaxis/artifactIdversion1.4/version/dependency六、淘汰原因 现代替代方案1. 被淘汰原因JAX-RPC 老旧笨重、只支持SOAP1.1不支持注解Holder手动包装样板代码极多开发繁琐Java EE 6起正式主推JAX-WS 2.x (javax.xml.ws)。2. JAX-WS 替代方案JAX-WS 不再需要Holder类方案1自定义POJO实体类封装多返回字段作为方法返回值方案2使用javax.xml.ws.HolderT泛型持有者通用一个类不再分每种基础类型单独类。JAX-WS 泛型Holder示例importjavax.xml.ws.Holder;publicinterfaceCalcWs{voidcalc(inta,intb,HolderIntegersum,HolderIntegerproduct);}七、常见报错解决方案报错package javax.xml.rpc.holders does not existJDK9模块化JDK移除了Java EE包无法直接引用解决方案Maven添加上面javax.xml.rpc-api依赖老旧Axis1项目建议升级到JAX-WS(JDK内置无需额外依赖)不要在SpringBoot3、Jakarta EE9新项目继续使用该API。八、总结javax.xml.rpc.holders JAX-RPC 专属输出参数包装工具包仅Axis1等老SOAP框架使用每种基础类型对应独立Holder类通过value公共字段存取返回值新项目禁止使用全部迁移至JAX-WS泛型javax.xml.ws.Holder或自定义返回实体JDK高版本无内置必须额外引入RPC API依赖。Package javax.xml.rpc.holdersSkip navigation linksOverviewPackageClassUseTreeDeprecatedIndexHelpPrev PackageNext PackageFramesNo FramesPackage javax.xml.rpc.holdersThis package contains the standard Java Holder classes.See: DescriptionInterface Summary Interface Description Holder The java.xml.rpc.holders.Holder interface represents the base interface for both standard and generated Holder classes. Class Summary Class Description BigDecimalHolder BigIntegerHolder BooleanHolder BooleanWrapperHolder ByteArrayHolder ByteHolder ByteWrapperHolder CalendarHolder DoubleHolder DoubleWrapperHolder FloatHolder FloatWrapperHolder IntegerWrapperHolder IntHolder LongHolder LongWrapperHolder ObjectHolder QNameHolder ShortHolder ShortWrapperHolder StringHolderPackage javax.xml.rpc.holders DescriptionThis package contains the standard Java Holder classes.Skip navigation linksOverview Package Class Use Tree Deprecated Index Help Prev Package Next Package Frames No Frames
`javax.xml.rpc.holders` 是 **JAX-RPC 1.1(Java XML RPC,旧版SOAP WebService规范)** 下的标准子包
一、包整体说明javax.xml.rpc.holders是JAX-RPC 1.1Java XML RPC旧版SOAP WebService规范下的标准子包专门用于传引用输出参数out/inout 参数对应WSDL里的out、inout类型参数场景。注意JAX-RPC 早已被 JAX-WS (javax.xml.ws) 全面淘汰该包属于老旧Java EE遗留APIJava 8高版本JDK默认不再内置。二、核心作用WebService接口方法默认只有返回值无法同时返回多个输出参数WSDL支持out仅输出、inout入参出参参数Java层无法直接传基本类型/包装类修改实参于是Holder持有者类做包装把要输出的值存入holder.value服务端赋值后客户端可从同一个Holder对象取出返回值兼容多返回参数的SOAP接口。三、包内常用内置Holder类都实现javax.xml.rpc.holders.Holder标记接口全部是线程不安全的简单包装类类名包装类型BooleanHolderBooleanByteHolderByteShortHolderShortIntHolderIntegerLongHolderLongFloatHolderFloatDoubleHolderDoubleStringHolderStringBigIntegerHolderBigIntegerBigDecimalHolderBigDecimalObjectHolderObject通用统一结构示例IntHolderpublicclassIntHolderimplementsHolder{publicIntegervalue;// 公共字段直接读写publicIntHolder(){}publicIntHolder(Integerinitial){this.valueinitial;}}四、典型代码示例inout参数1. 接口定义JAX-RPCimportjavax.xml.rpc.holders.IntHolder;// ina,binoutsumoutproductpublicinterfaceCalcService{voidcalc(inta,intb,IntHoldersum,IntHolderproduct);}2. 客户端调用CalcServiceservicegetStub();IntHoldersumHoldernewIntHolder();IntHoldermulHoldernewIntHolder();service.calc(3,5,sumHolder,mulHolder);// 从Holder取出输出结果System.out.println(和sumHolder.value);System.out.println(积mulHolder.value);五、Maven依赖JDK默认不带必须手动引入JAX-RPC 规范包实现包!-- JAX-RPC API 核心 --dependencygroupIdjavax.xml.rpc/groupIdartifactIdjavax.xml.rpc-api/artifactIdversion1.1/version/dependency!-- 常用实现Apache Axis1经典JAX-RPC实现 --dependencygroupIdorg.apache.axis/groupIdartifactIdaxis/artifactIdversion1.4/version/dependency六、淘汰原因 现代替代方案1. 被淘汰原因JAX-RPC 老旧笨重、只支持SOAP1.1不支持注解Holder手动包装样板代码极多开发繁琐Java EE 6起正式主推JAX-WS 2.x (javax.xml.ws)。2. JAX-WS 替代方案JAX-WS 不再需要Holder类方案1自定义POJO实体类封装多返回字段作为方法返回值方案2使用javax.xml.ws.HolderT泛型持有者通用一个类不再分每种基础类型单独类。JAX-WS 泛型Holder示例importjavax.xml.ws.Holder;publicinterfaceCalcWs{voidcalc(inta,intb,HolderIntegersum,HolderIntegerproduct);}七、常见报错解决方案报错package javax.xml.rpc.holders does not existJDK9模块化JDK移除了Java EE包无法直接引用解决方案Maven添加上面javax.xml.rpc-api依赖老旧Axis1项目建议升级到JAX-WS(JDK内置无需额外依赖)不要在SpringBoot3、Jakarta EE9新项目继续使用该API。八、总结javax.xml.rpc.holders JAX-RPC 专属输出参数包装工具包仅Axis1等老SOAP框架使用每种基础类型对应独立Holder类通过value公共字段存取返回值新项目禁止使用全部迁移至JAX-WS泛型javax.xml.ws.Holder或自定义返回实体JDK高版本无内置必须额外引入RPC API依赖。Package javax.xml.rpc.holdersSkip navigation linksOverviewPackageClassUseTreeDeprecatedIndexHelpPrev PackageNext PackageFramesNo FramesPackage javax.xml.rpc.holdersThis package contains the standard Java Holder classes.See: DescriptionInterface Summary Interface Description Holder The java.xml.rpc.holders.Holder interface represents the base interface for both standard and generated Holder classes. Class Summary Class Description BigDecimalHolder BigIntegerHolder BooleanHolder BooleanWrapperHolder ByteArrayHolder ByteHolder ByteWrapperHolder CalendarHolder DoubleHolder DoubleWrapperHolder FloatHolder FloatWrapperHolder IntegerWrapperHolder IntHolder LongHolder LongWrapperHolder ObjectHolder QNameHolder ShortHolder ShortWrapperHolder StringHolderPackage javax.xml.rpc.holders DescriptionThis package contains the standard Java Holder classes.Skip navigation linksOverview Package Class Use Tree Deprecated Index Help Prev Package Next Package Frames No Frames