웹 서비스를 사용하여 트리 구조를 만들고 싶습니다. 간단한 알고리즘 생성을 위해 bottom up 웹 서비스 기술을 사용했습니다. 웹 서비스를 사용하여 트리를 작성하는 방법을 이해할 수 없습니다. 이것을 달성 할 방법이 있습니까?웹 서비스를 사용하여 트리를 만드는 방법은 무엇입니까?
0
A
답변
0
사용 재귀 정의와 같은 :
expr = expr1 operand expr2 | node
expr1 = expr
expr2 = expr
operand = '+' | '-'
node = number
그런 다음 당신이
15 + 3 JSON 또는 XML을 사용하여 간단하게 인코딩 cqn - 2
{ "expr" :
{ "expr1": { "expr1":"15" "operand":"+" "expr2":"3"}
"operand": "-"
"expr2": "2"}}
또는 XML에이된다을
<expr>
<expr1>
<expr1>15</expr1>
<operand>+</operand>
<expr2>3</expr2>
</expr1>
<operand>+</operand>
<expr2>2</expr2>
</expr>
서비스에서 나무를 걸거나 나무를 만들 수 있습니다. 서비스를 소비자 또는 생산자로 본다면 확실하지 않습니다.
0
당신이 Axis2와를 사용하여 그루비에서 웹 서비스를 구현하는 경우, 당신은 Axis2를 low level Axiom API 호출을 생성하는 빌더 만들 수 있습니다
package example
import groovy.util.BuilderSupport
import org.apache.axiom.om.OMAbstractFactory
import org.apache.axiom.om.OMElement
import org.apache.axiom.om.OMFactory
import org.apache.axiom.om.OMNamespace
class OMElementBuilder extends BuilderSupport {
OMElement result
String namespace
OMElementBuilder(namespace) {
this.namespace = namespace
}
def createNode(name) {
return createNode(name, null, null)
}
def createNode(name, value) {
return createNode(name, null, value)
}
def createNode(name, Map attributes) {
return createNode(name, attributes, null)
}
def createNode(name, Map attributes, value) {
OMFactory fact = OMAbstractFactory.getOMFactory()
OMNamespace omNs = fact.createOMNamespace(namespace, "ns")
OMElement node = fact.createOMElement(name, omNs)
if (value) {
fact.createOMText(node, value)
}
return node
}
void setParent(parent, child) {
parent.addChild(child)
}
void nodeCompleted(parent, node) {
if (!parent) {
result = node
}
}
}
모든 arbitray XML 구조는 다음과 같이 생성 한 후 쉽게 :
package example
import org.apache.axis2.AxisFault
import org.apache.axiom.om.OMElement
import javax.xml.namespace.QName
public class BankService {
// withdraw operation
public OMElement withdraw(OMElement requestElement) {
// Build the response
def builder = new OMElementBuilder("http://example")
builder.withdrawResponse() {
balance("1000")
additionalInfo() {
item() {
message("hello world")
}
item() {
message("hello world")
}
item() {
message("hello world")
}
item() {
message("hello world")
}
}
}
return builder.result
}
}
을
이해하지 못함 - 트리 데이터 구조를 사용하거나 반환하는 서비스 메서드가 필요하며 데이터 구조에 대해 suiteable xml 스키마를 정의하는 데 도움이 필요합니까? –
아니요 .. 예를 들어이 링크 http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/BottomUpWebService/BottomUpWebService.html에 나와 있습니다. 이들은 변환을위한 단일 기능을 만들었습니다. 그런 식으로 나무를 만들려면 어떻게해야합니까? 또는 내 접근 방식이 잘못 되었습니까? 나는 완전히 혼란 스럽다. 이것이 올바른 방법이 아닌 경우 웹 서비스에서 트리를 만들 수 있습니까? 지침을위한 링크 또는 자습서가 있습니까? – Aru