基于XML的Web服务Java接口(JAX-WS)、Jakarta XML Web Services Eclipse 实现
简介
JAX-WS(Java API for XML-Based Web Services),是创建web服务的Java编程接口,特别是SOAP服务。是Java XML编程接口之一,是Java SE 和Java EE 平台的一部分。
JAX-WS 2.0 规范是代替JAX-RPC 1.0的下一代Web服务API。JAX-RPC(The Java API for XML Based RPC)是基于XML的RPC(远程过程调用)的Java API。
JAX-WS 2.0 使用JAXB(The Java Architecture for XML Binding)进行XML数据绑定,所谓绑定就是指XML请求和XML响应如何映射成java对象。
参考资源
JAX-WS 2.0参考资源
https://jcp.org/en/jsr/detail?id=224

https://jakarta.ee/specifications/xml-web-services/2.3/

JAX-WS 3.0参考资源
https://jakarta.ee/specifications/xml-web-services/3.0/

JAX-WS 4.0参考资源
https://jakarta.ee/specifications/xml-web-services/4.0/

Jakarta Web Services Metadata
Jakarta Web Services Metadata项目是Jakarta XML Web Services 项目的一部分,它用Java为web 服务定义了一个编程模型。
代码库:https://github.com/jakartaee/jws-api

Jakarta Web Services Metadata 3.0 Specification Document (HTML):
https://jakarta.ee/specifications/web-services-metadata/3.0/ws-metadata-spec-3.0
Jakarta Web Services Metadata 3.0 Javadoc:
https://jakarta.ee/specifications/web-services-metadata/3.0/apidocs/jakarta.jws/module-summary.html
参考实现
旧项目(已经归档、只读)
https://javaee.github.io/metro-jax-ws/

https://github.com/javaee/metro-jax-ws


新项目(Jakarta XML Web Services Eclipse 实现)
主页:
https://eclipse-ee4j.github.io/metro-jax-ws/

代码库:
https://github.com/eclipse-ee4j/metro-jax-ws

XML web服务的Eclipse 实现是一个web服务框架,它为最终用户和中间件开发者开发web服务解决方案提供了工具和基础设施(infrastructure)。
使用XML web服务的Eclipse 实现,客户端和web有一个大的优势:Java编程语言的平台无关性。
Jakarta XML Web Services Eclipse 实现需要的软件
- Java SE 11或以后版本
- Ant 1.10.6或以后版本
- 在GlassFish v7.x 、Apache Tomcat 10.1.x下测试过
安装Jakarta XML Web Services Eclipse 实现
下载Jakarta XML Web Services Eclipse实现独立zip发布包
打开主页:https://eclipse-ee4j.github.io/metro-jax-ws/

点击右侧的Download就可以下载独立发布包,例如,下载jaxws-ri-4.0.0.zip。
解压后的目录:

bin子目录下的内容:

docs子目录下的内容:

lib子目录下的内容:

samples子目录下的内容:

安装到Tomcat中
设置CATALINA_HOME环境变量,指向Tomcat的安装目录,例如:


在cmd窗口,切换到Jakarta XML Web Services Eclipse实现解压后的目录,例如:D:\jaxws-ri-4.0.0\jaxws-ri

这个目录下有build.xml文件:

运行ant install命令。这个命令其实执行了两个大的操作:
- 拷贝Jakarta XML Web Services Eclipse实现lib子目录下的jar文件到Tomcat安装目录下面的/shared/lib子目录中
- 更新Tomcat安装目录下面/conf/catalina.properties文件中的属性shared.loader,使之等于${catalina.home}/shared/lib/*.jar
build.xml文件片段:
<target name="install" depends="update-catalina-props" description="Install XML-WS RI 4.0.0 jars"><echo message="Installing XML-WS RI 4.0.0 for ${catalina.home} ..."/><mkdir dir="${catalina.lib.home}"/><copy toDir="${catalina.lib.home}" overwrite="true"><fileset dir="${basedir}/lib" includes="*.jar"/></copy></target><target name="update-catalina-props"><echo message="Backing up ${catalina.home}/conf/catalina.properties..."/><copy file="${catalina.home}/conf/catalina.properties" tofile="${catalina.home}/conf/catalina.properties.backup"/><echo message="Adding XML-WS RI jars to shared.loader property in ${catalina.home}/conf/catalina.properties..."/><replace file="${catalina.home}/conf/catalina.properties" token="shared.loader=" value="shared.loader=$${catalina.home}/shared/lib/*.jar,"/>
</target>
执行ant install命令的窗口输出信息:

Jakarta XML Web Services Eclipse 实现依赖的jar包
https://eclipse-ee4j.github.io/metro-jax-ws/4.0.0/docs/release-documentation.html#jar-dependency

SOAP1.1+HTTP样例:运行fromjava样例(来自Jakarta XML Web Services Eclipse实现发布包)
说明
fromjava这个样例演示了从一个Java service endpoint的实现开始,如何构建、部署、调用一个简单的web服务。其中Java service endpoint的实现使用了Java注释。

fromjava的目录结构:

服务实现类只有一个方法addNumbers,输入两个整数,返回一个整数,抛出AddNumbersException异常:

运行web服务有两种方式:
- 在servlet容器中运行
- 作为一个j2se webservice endpoint运行(不需要servlet容器)
运行方式一:在tomcat容器中运行web服务
设置环境变量JAXWS_HOME指向JAX-WS的安装目录

在cmd窗口切换到fromjava的目录

运行ant clean
运行ant clean的作用是删掉${build.home}目录。其中${build.home}目录指向${basedir}/build,就是fromjava/build目录。(其实这个命令不运行也可以,因为下一步运行ant server命令的时候其中含有ant clean的步骤)

运行ant server -Dtomcat=true
运行ant server -Dtomcat=true的作用是构建、部署web服务的WAR包,因为要将web服务运行在tomcat中,所以加了-Dtomcat=true这个属性。这个命令做了四个工作:
<target name="server" depends="setup"><antcall target="clean"/><antcall target="build-server-java"/><antcall target="create-war"/><antcall target="deploy"/>
</target>
运行输出:


现在fromjava目录下的文件布局(注:照理${env.AS_HOME}这个目录不应该生成的,对我们没有什么用):
D:\JAXWS-RI-4.0.0\JAXWS-RI\SAMPLES\FROMJAVA
│ build.xml
│ Readme.txt
│
├─${env.AS_HOME}
│ └─domains
│ └─domain1
│ └─autodeploy
│ jaxws-fromjava.war
│
├─build
│ ├─classes
│ │ └─fromjava
│ │ └─server
│ │ │ AddNumbersException.class
│ │ │ AddNumbersImpl.class
│ │ │ AddWebservice.class
│ │ │ EndpointStopper$1.class
│ │ │ EndpointStopper.class
│ │ │
│ │ └─jaxws
│ │ AddNumbers.class
│ │ AddNumbers.java
│ │ AddNumbersExceptionBean.class
│ │ AddNumbersExceptionBean.java
│ │ AddNumbersResponse.class
│ │ AddNumbersResponse.java
│ │
│ └─war
│ jaxws-fromjava.war
│
├─etc
│ deploy-targets.xml
│ sun-jaxws.xml
│ web.xml
│
└─src└─fromjava├─client│ AddNumbersClient.java│ └─serverAddNumbersException.javaAddNumbersImpl.javaAddWebservice.javaEndpointStopper.java
到<tomcat安装目录>/webapps下查看,war包已经拷贝过来了:

运行tomcat
因为生成客户端代码的时候要访问web服务动态生成的wsdl文件,所以要先启动tomcat。


到<tomcat安装目录>/webapps下查看,war包已经被自动部署了:

部署以后的文件布局:
D:\APACHE-TOMCAT-10.1.13\WEBAPPS\JAXWS-FROMJAVA
├─META-INF
│ MANIFEST.MF
│ war-tracker
│
└─WEB-INF│ sun-jaxws.xml│ web.xml│ └─classes└─fromjava└─server│ AddNumbersException.class│ AddNumbersImpl.class│ AddWebservice.class│ EndpointStopper$1.class│ EndpointStopper.class│ └─jaxwsAddNumbers.classAddNumbers.javaAddNumbersExceptionBean.classAddNumbersExceptionBean.javaAddNumbersResponse.classAddNumbersResponse.java
看看wsdl文件能否正常生成
访问http://localhost:8080/jaxws-fromjava/addnumbers?wsdl
可以看到,正常生成了wsdl文件。生成客户端代码的时候,就要访问这个wsdl的地址。

<?xml version='1.0' encoding='UTF-8'?><!-- Published by XML-WS Runtime (https://github.com/eclipse-ee4j/metro-jax-ws). Runtime's version is XML-WS Runtime 4.0.0 git-revision#129f787. --><!-- Generated by XML-WS Runtime (https://github.com/eclipse-ee4j/metro-jax-ws). Runtime's version is XML-WS Runtime 4.0.0 git-revision#129f787. --><definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://server.fromjava/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://server.fromjava/" name="AddNumbersImplService">
<types>
<xsd:schema>
<xsd:import namespace="http://server.fromjava/" schemaLocation="http://localhost:8080/jaxws-fromjava/addnumbers?xsd=1"/>
</xsd:schema>
</types>
<message name="addNumbers">
<part name="parameters" element="tns:addNumbers"/>
</message>
<message name="addNumbersResponse">
<part name="parameters" element="tns:addNumbersResponse"/>
</message>
<message name="AddNumbersException">
<part name="fault" element="tns:AddNumbersException"/>
</message>
<portType name="AddNumbersImpl">
<operation name="addNumbers">
<input wsam:Action="http://server.fromjava/AddNumbersImpl/addNumbersRequest" message="tns:addNumbers"/>
<output wsam:Action="http://server.fromjava/AddNumbersImpl/addNumbersResponse" message="tns:addNumbersResponse"/>
<fault message="tns:AddNumbersException" name="AddNumbersException" wsam:Action="http://server.fromjava/AddNumbersImpl/addNumbers/Fault/AddNumbersException"/>
</operation>
</portType>
<binding name="AddNumbersImplPortBinding" type="tns:AddNumbersImpl">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="addNumbers">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="AddNumbersException">
<soap:fault name="AddNumbersException" use="literal"/>
</fault>
</operation>
</binding>
<service name="AddNumbersImplService">
<port name="AddNumbersImplPort" binding="tns:AddNumbersImplPortBinding">
<soap:address location="http://localhost:8080/jaxws-fromjava/addnumbers"/>
</port>
</service>
</definitions>
运行ant clean
运行ant clean:

运行ant client
运行ant client的目的是为了生成客户端代码并编译:
<target name="generate-client" depends="setup"><wsimportdebug="true"verbose="${verbose}"keep="true"destdir="${build.classes.home}"package="fromjava.client"wsdl="http://localhost:8080/jaxws-fromjava/addnumbers?wsdl"></wsimport>
</target><target name="client" depends="generate-client"><javacfork="true"srcdir="${basedir}/src"destdir="${build.classes.home}"includes="**/client/**,**/common/**"><classpath refid="jaxws.classpath"/></javac>
</target>

运行后,客户端代码布局:
D:\JAXWS-RI-4.0.0\JAXWS-RI\SAMPLES\FROMJAVA\BUILD
├─classes
│ └─fromjava
│ └─client
│ AddNumbers.class
│ AddNumbers.java
│ AddNumbersClient.class
│ AddNumbersException.class
│ AddNumbersException.java
│ AddNumbersException_Exception.class
│ AddNumbersException_Exception.java
│ AddNumbersImpl.class
│ AddNumbersImpl.java
│ AddNumbersImplService.class
│ AddNumbersImplService.java
│ AddNumbersResponse.class
│ AddNumbersResponse.java
│ ObjectFactory.class
│ ObjectFactory.java
│ package-info.class
│ package-info.java
│
└─war
运行ant run
执行ant run表示运行客户端。
<target name="run"><java fork="true" classname="fromjava.client.AddNumbersClient"><classpath><path refid="jaxws.classpath"/><pathelement location="${build.classes.home}"/><pathelement location="${basedir}/etc"/></classpath></java>
</target>

运行方式二:作为一个j2se webservice endpoint运行(不运行在servlet容器中)
运行ant clean server-j2se
运行ant clean server-j2se生成服务端代码,并且用Endpoint API来部署:
<target name="server-j2se" depends="setup"><antcall target="clean"/><antcall target="build-server-java"/><echo message="Starting endpoint... To stop: ant server-j2se-stop "/><java fork="true" classname="fromjava.server.AddWebservice"><classpath><path refid="jaxws.classpath"/><pathelement location="${build.classes.home}"/></classpath></java>
</target>

生成的文件布局:
D:\JAXWS-RI-4.0.0\JAXWS-RI\SAMPLES\FROMJAVA\BUILD
├─classes
│ └─fromjava
│ └─server
│ │ AddNumbersException.class
│ │ AddNumbersImpl.class
│ │ AddWebservice.class
│ │ EndpointStopper$1.class
│ │ EndpointStopper.class
│ │
│ └─jaxws
│ AddNumbers.class
│ AddNumbers.java
│ AddNumbersExceptionBean.class
│ AddNumbersExceptionBean.java
│ AddNumbersResponse.class
│ AddNumbersResponse.java
│
└─war
访问http://localhost:8080/jaxws-fromjava/addnumbers?wsdl
可以正常生成wsdl文件:

运行ant clean client run
另外打开一个cmd窗口,运行ant clean client run,目的是在根据endpoint发布的wsdl文件生成客户端代码、编译、并且运行。


运行后,客户端的代码布局:
D:\JAXWS-RI-4.0.0\JAXWS-RI\SAMPLES\FROMJAVA\BUILD
├─classes
│ └─fromjava
│ └─client
│ AddNumbers.class
│ AddNumbers.java
│ AddNumbersClient.class
│ AddNumbersException.class
│ AddNumbersException.java
│ AddNumbersException_Exception.class
│ AddNumbersException_Exception.java
│ AddNumbersImpl.class
│ AddNumbersImpl.java
│ AddNumbersImplService.class
│ AddNumbersImplService.java
│ AddNumbersResponse.class
│ AddNumbersResponse.java
│ ObjectFactory.class
│ ObjectFactory.java
│ package-info.class
│ package-info.java
│
└─war
运行ant server-j2se-stop,停止web服务
<target name="server-j2se-stop" depends="setup"><get src="http://localhost:9090/stop" dest="stop.status"/>
</target>

Jakarta XML Web Services Eclipse实现下载方式二:用maven下载
在maven工程的pom.xml文件中增加如下依赖:
<dependencies><dependency><groupId>jakarta.xml.ws</groupId><artifactId>jakarta.xml.ws-api</artifactId><version>4.0.0</version></dependency><dependency><groupId>com.sun.xml.ws</groupId><artifactId>jaxws-rt</artifactId><version>4.0.0</version> </dependency></dependencies>
相关文章:
基于XML的Web服务Java接口(JAX-WS)、Jakarta XML Web Services Eclipse 实现
简介 JAX-WS(Java API for XML-Based Web Services),是创建web服务的Java编程接口,特别是SOAP服务。是Java XML编程接口之一,是Java SE 和Java EE 平台的一部分。 JAX-WS 2.0 规范是代替JAX-RPC 1.0的下一代Web服务AP…...
公网无信号区域远程抄表问题解决方案及产品选型
摘要:随着计量自动化系统的逐步完善,电网全用户表码信息采集成为系统数据得以深化应用的重要基础。利用无线公网通信是目前实现远程抄表的主要手段之一,但仍存在公网难以覆盖的偏远山区、公网信号屏蔽地下室或弱信号区域,无法实现…...
lunar-1.5.jar
公历农历转换包 https://mvnrepository.com/artifact/com.github.heqiao2010/lunar <!-- https://mvnrepository.com/artifact/com.github.heqiao2010/lunar --> <dependency> <groupId>com.github.heqiao2010</groupId> <artifactId>l…...
c++编译使用log4cplus
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、log4cplus是什么?二、使用步骤1.下载源代码2.开始配置1.配置介绍2.开始编译 3.cmake引用4.示例 总结 前言 C很强大,但是仍然有很多…...
zookeeper源码(02)源码编译启动及idea导入
本文介绍一下zookeeper-3.9.0源码下载、编译及本地启动。 下载源码 git clone https://gitee.com/apache/zookeeper.gitcd zookeeper git checkout release-3.9.0 git checkout -b release-3.9.0源码编译 README_packaging.md文件 该文件介绍了编译zookeeper需要的环境和命…...
Github 2FA绑定中国+86手机号码实现两步验证
GitHub宣布,到 2023 年底,所有用户都必须要启用双因素身份验证 (2FA),不能只用密码. GitHub开启2FA后,除了输入密码外,还需要通过一次性密码(OTP)等方式做第二级身份验证,才能成功登…...
windows安装mysql-8.0.35
打开cmd(以管理员身份运行),切换到mysql下的bin目录 mysqld --initialize 执行完毕之后,在data目录下会生成很多文件。 打开cmd(以管理员身份运行),切换到mysql下的bin目录,如果刚才的cmd没有关闭,可以继续mysqld -…...
最详细STM32,cubeMX串口发送,接收数据
这篇文章将详细介绍 串口 发送数据,接受数据。 文章目录 前言一、串口的基础知识二、cubeMX 配置三、自动生成代码解析四、串口发送数据函数五、使用串口收发数据点亮 led重定向函数: 总结 前言 实验开发板:STM32F103C8T6。所需软件…...
Kafka入门04——原理分析
目录 01理解Topic和Partition Topic(主题) Partition(分区) 02理解消息分发 消息发送到分区 消费者订阅和消费指定分区 总结 03再均衡(rebalance) 再均衡的触发 分区分配策略 RangeAssignor(范围分区) RoundRobinAssignor(轮询分区) StickyAssignor(粘性分区) Re…...
k8s-----17、集群安全机制
1、集群安全机制概述 1.1 访问k8s的三个步骤 1、认证 2、鉴权(授权) 3、准入控制 进行访问的时候,过程中都需要经过apiserver,apiserver做统一协调,比如门卫。且访问过程中需要证书、token、或者用户名密码。如果需要访问pod,…...
蓝桥算法赛(铺地板)
问题描述 小蓝家要装修了,小蓝爸爸买来了很多块(你可以理解为数量无限) 23 规格的地砖,小蓝家的地板是 nm 规格的,小蓝想问你,能否用这些 23 的地砖铺满地板。 铺满地板:对于地板的每个区域&…...
浅谈AcrelEMS-GYM文体建筑能效管理解决方案-安科瑞 蒋静
1 概述 AcrelEMS-CA 文体建筑能效管理聚焦建筑的能量和信息的流向搭建平台解决方案。该系统解决方案集变电站综合自动化、电力监控、电能质量分析及治理、电气安全、能耗分析、照明控制、设备运维于一体。打破子系统孤立,配置方便,运维便捷;…...
在LayerUI中使用onChange事件监听复选框的值变化
在LayerUI中,你可以使用onChange事件监听复选框的值变化。当复选框的状态发生变化时,onChange事件会被触发。 以下是一个示例代码,演示了如何使用onChange事件监听复选框的值变化: jsx import React from react; import { Chec…...
决策树--ID3算法
决策树–ID3算法 概念 (1)信息熵 E n t r o p y ( x ) − ∑ i N c l a s s P ( x i ) l o g 2 P ( x i ) Entropy(x) -\sum_{i}^{N_{class}}P(x_i)log_2 P(x_i) Entropy(x)−i∑NclassP(xi)log2P(xi) 假设只有2个类别(N2&…...
js延时加载有哪些方式
...
VSCode运行python提示No module name ‘xxx‘
在进行from * import *导入操作时,编辑器能够解析到module, 但是在编辑器中运行时确提示。 No module name xxx 而且单独运行该文件,或在其他编辑器、或terminal中python file运行,都能正常导入module. 解决方案: 在vscode的用…...
【网安大模型专题10.19】※论文5:ChatGPT+漏洞定位+补丁生成+补丁验证+APR方法+ChatRepair+不同修复场景+修复效果(韦恩图展示)
Keep the Conversation Going: Fixing 162 out of 337 bugs for $0.42 each using ChatGPT 写在最前面背景介绍自动程序修复流程Process of APR (automated program repair)1、漏洞程序2、漏洞定位模块3、补丁生成4、补丁验证 (可以学习的PPT设计)经典的…...
C盘满了怎么清理文件?
电脑的C盘是我们电脑存储系统文件和应用程序的一个重要盘符,很多人经常会遇到C盘空间不足的问题;虽然我们可以通过卸载程序或者删除文件来释放空间,但是在这个过程中往往会误删掉一些重要的文件,造成部分程序可能无法正常使用。 因…...
pytest方法间变量值传递--request夹具
相当于self对象,因为调试的时候测试用例是类似沙箱的单步运行,所以self对象的属性被阻挡在沙箱外边。 request.cls 是pytest中的一个属性,它允许您在测试类中共享数据或属性。当您使用pytest编写测试类时,request 夹具允许您在测…...
Linux 内核定时器(高级字符设备五)
一、Linux 内核定时器介绍 在 Linux 内核中很多函数是基于定时器进行驱动的,但是内核定时器的精度并不高,所以不能作为高精度定时器使用。并且内核定时器的运行没有周期性,到达计时终点后会自动关闭。如果要实现周期性定时,就要在…...
简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
